
    7f                         d dl mZ d dlmc mZ d dlZd dlZd dlm	Z	 ddl
mZ ddlmZ eZdd	Z G d
 dej                  ZdS )    )logN)chain   )metadata   )_ORIGINAL_SUBCOMMANDS c              #      K   t          j        d          D ]%} |                                |           E d{V  &dS )z%Find all files under revision controlzsetuptools.file_finders)groupN)r   entry_pointsload)dirnameeps     V/home/feoh/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/sdist.pywalk_revctrlr      s[      #*CDDD & &27799W%%%%%%%%%%& &    c                        e Zd ZdZg dZi Zg dZ ed eD                       Zd Z	d Z
d Zeej        d                         Z fd	Z fd
Zd Zd Zd Zd Z fdZd Zd Zd Zd Z xZS )sdistz=Smart sdist that finds anything supported by revision control))zformats=Nz6formats for source distribution (comma-separated list))z	keep-tempkz@keep the distribution tree around after creating archive file(s))z	dist-dir=dzFdirectory to put the source distribution archive(s) in [default: dist])zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group])r	   z.rstz.txtz.mdc              #   @   K   | ]}d                      |          V  dS )z	README{0}N)format).0exts     r   	<genexpr>zsdist.<genexpr>1   s0      IIK&&s++IIIIIIr   c                    |                      d           |                     d          }|j        | _        | j                            t          j                            |j        d                     |                                  | 	                                D ]}|                      |           | 
                                 t          | j        dg           }| j        D ] }dd|f}||vr|                    |           !d S )Negg_infozSOURCES.txt
dist_filesr   r	   )run_commandget_finalized_commandfilelistappendospathjoinr   check_readmeget_sub_commandsmake_distributiongetattrdistributionarchive_files)selfei_cmdcmd_namer    filedatas         r   runz	sdist.run3   s   $$$++J77RW\\&/=IIJJJ --// 	' 	'HX&&&&   T.bAA
& 	( 	(DR&D:%%!!$'''	( 	(r   c                 D    t           j                            |            d S N)origr   initialize_optionsr.   s    r   r7   zsdist.initialize_optionsF   s    
%%d+++++r   c                     |                                  5  t          j                            |            ddd           dS # 1 swxY w Y   dS )z%
        Workaround for #516
        N)_remove_os_linkr6   r   r*   r8   s    r   r*   zsdist.make_distributionI   s     !!## 	/ 	/J((...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s    AA	Ac               #      K    G d d          } t          t          d|           }	 t          `n# t          $ r Y nw xY w	 dV  || ur|t          _        dS dS # || ur|t          _        w xY w)zG
        In a context, remove and restore os.link if it exists
        c                       e Zd ZdS )&sdist._remove_os_link.<locals>.NoValueN)__name__
__module____qualname__ r   r   NoValuer=   W   s        Dr   rB   linkN)r+   r%   rC   	Exception)rB   orig_vals     r   r:   zsdist._remove_os_linkP   s      	 	 	 	 	 	 	 	 2vw//	 	 	 	D		#EEEw&&" '&xw&&"""""s   / 
<< A A*c                 p    t                                                       |                                  d S r5   )superadd_defaults _add_defaults_build_sub_commandsr.   	__class__s    r   rH   zsdist.add_defaultse   s1    --/////r   c                     t                                                       t          j                            d          r| j                            d           d S d S )Nzpyproject.toml)rG   _add_defaults_optionalr%   r&   isfiler#   r$   rJ   s    r   rM   zsdist._add_defaults_optionali   sW    &&(((7>>*++ 	3M  !122222	3 	3r   c                    | j                                         rk|                     d          }| j                            |                                           |                     |                     |                     dS dS )zgetting python filesbuild_pyN)r,   has_pure_modulesr"   r#   extendget_source_files_add_data_files_safe_data_filesr.   rP   s     r   _add_defaults_pythonzsdist._add_defaults_pythonn   s    --// 	B11*==HM  !:!:!<!<===  !6!6x!@!@AAAAA	B 	Br   c                                           d          }t          |                                          t          z
  } fd|D             }d |D             } j                            t          j        |                     d S )Nbuildc              3   B   K   | ]}                     |          V  d S r5   )r"   )r   cr.   s     r   r   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>y   s1      DD!**1--DDDDDDr   c              3   ^   K   | ](}t          |d           |                                V  )dS )rS   N)hasattrrS   )r   r[   s     r   r   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>z   s>      VV!wqBT7U7UV##%%VVVVVVr   )r"   setr)   r   r#   rR   r   from_iterable)r.   rY   missing_cmdscmdsfiless   `    r   rI   z&sdist._add_defaults_build_sub_commandsu   s    **73351133447LLDDDD|DDDVVtVVVU07788888r   c                     |j         S )a  
        Since the ``sdist`` class is also used to compute the MANIFEST
        (via :obj:`setuptools.command.egg_info.manifest_maker`),
        there might be recursion problems when trying to obtain the list of
        data_files and ``include_package_data=True`` (which in turn depends on
        the files included in the MANIFEST).

        To avoid that, ``manifest_maker`` should be able to overwrite this
        method and avoid recursive attempts to build/analyze the MANIFEST.
        )
data_filesrV   s     r   rU   zsdist._safe_data_files}   s     ""r   c                 N    | j                             d |D                        dS )zA
        Add data files as found in build_py.data_files.
        c              3   j   K   | ].\  }}}}|D ]$}t           j                            ||          V  %/d S r5   )r%   r&   r'   )r   _src_dir	filenamesnames        r   r   z(sdist._add_data_files.<locals>.<genexpr>   se       
 
(7Ay!
 
  GLL$''
 
 
 
 
 
 
r   N)r#   rR   )r.   rd   s     r   rT   zsdist._add_data_files   sD     	 
 
,6
 
 
 	
 	
 	
 	
 	
r   c                     	 t                                                       d S # t          $ r t          j        d           Y d S w xY w)Nz&data_files contains unexpected objects)rG   _add_defaults_data_files	TypeErrorr   warnrJ   s    r   rl   zsdist._add_defaults_data_files   sY    	?GG,,..... 	? 	? 	?H=>>>>>>	?s    % AAc                     | j         D ]$}t          j                            |          r d S %|                     dd                    | j                   z              d S )Nz,standard file not found: should have one of z, )READMESr%   r&   existsrn   r'   )r.   fs     r   r(   zsdist.check_readme   sm     	 	Aw~~a    II>4<AXAXX    r   c                    t           j                            | ||           t          j                            |d          }t          t          d          rIt          j                            |          r*t          j        |           | 	                    d|           | 
                    d                              |           d S )Nz	setup.cfgrC   r   )r6   r   make_release_treer%   r&   r'   r]   rq   unlink	copy_filer"   save_version_info)r.   base_dirrb   dests       r   rt   zsdist.make_release_tree   s    
$$T8U;;; w||Hk222v 	.27>>$#7#7 	. IdOOONN;---"":..@@FFFFFr   c                     t           j                            | j                  sdS t	          | j        d          5 }|                                }d d d            n# 1 swxY w Y   |dk    S )NFrbs+   # file GENERATED by distutils, do NOT edit
)r%   r&   rN   manifestopenreadline)r.   fp
first_lines      r   _manifest_is_not_generatedz sdist._manifest_is_not_generated   s    w~~dm,, 	5$-&& 	'"J	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'LLLs   AA!$A!c                    t          j        d| j                   t          | j        d          }|D ]}	 |                    d          }n'# t
          $ r t          j        d|z             Y <w xY w|                                }|                    d          s|sl| j	        
                    |           |                                 dS )zRead the manifest file (named by 'self.manifest') and use it to
        fill in 'self.filelist', the list of files to include in the source
        distribution.
        zreading manifest file '%s'r{   zUTF-8z"%r not UTF-8 decodable -- skipping#N)r   infor|   r}   decodeUnicodeDecodeErrorrn   strip
startswithr#   r$   close)r.   r|   lines      r   read_manifestzsdist.read_manifest   s    
 	-t}===t,, 	' 	'D{{7++%   =DEEE ::<<Ds## 4 M  &&&&s   A!A/.A/)r>   r?   r@   __doc__user_optionsnegative_optREADME_EXTENSIONStuplerp   r3   r7   r*   staticmethod
contextlibcontextmanagerr:   rH   rM   rW   rI   rU   rT   rl   r(   rt   r   r   __classcell__)rK   s   @r   r   r      s       GG  L0 L333eII7HIIIIIG( ( (&, , ,/ / / # #  \#&0 0 0 0 03 3 3 3 3
B B B9 9 9# # #
 
 
? ? ? ? ?  G G GM M M      r   r   )r	   )	distutilsr   distutils.command.sdistcommandr   r6   r%   r   	itertoolsr   
_importlibr   rY   r   list_default_revctrlr   rA   r   r   <module>r      s          & & & & & & & & & 				           ! ! ! ! ! ! ( ( ( ( ( ( & & & &y y y y yDJ y y y y yr   