
    df                         d dl mZ d dlmc mZ d dlZd dlZd dlZd dl	Z	d dl
m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ej                        Zy)    )logN)chain   )sdist_add_defaults   )metadata)_ORIGINAL_SUBCOMMANDSc              #      K   t        j                  d      D ]!  } |j                         |       D ]  }|  # yw)z%Find all files under revision controlzsetuptools.file_finders)groupN)r   entry_pointsload)dirnameepitems      Q/home/api-vastappli/venv/lib/python3.12/site-packages/setuptools/command/sdist.pywalk_revctrlr      sB     ##*CD BGGIg& 	DJ	s   <>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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]) z.rstz.txtz.mdc              #   >   K   | ]  }d j                  |        yw)z	README{0}N)format).0exts     r   	<genexpr>zsdist.<genexpr>-   s     IK&&s+Is   c                    | j                  d       | j                  d      }|j                  | _        | j                  j                  t        j
                  j                  |j                  d             | j                          | j                         D ]  }| j                  |        | j                          t        | j                  dg       }| j                  D ]  }dd|f}||vs|j                  |        y )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.run/   s    $++J7RWW\\&//=IJ --/ 	'HX&	' 	 T..bA
&& 	(DR&D:%!!$'	(    c                 b    t         j                  j                  |        | j                          y N)origr   initialize_options_default_to_gztarr/   s    r   r9   zsdist.initialize_optionsB   s     

%%d+ r5   c                 <    t         j                  dk\  ry dg| _        y )N)      r   betar   gztar)sysversion_infoformatsr;   s    r   r:   zsdist._default_to_gztarG   s    33yr5   c                     | j                         5  t        j                  j                  |        ddd       y# 1 sw Y   yxY w)z%
        Workaround for #516
        N)_remove_os_linkr8   r   r+   r;   s    r   r+   zsdist.make_distributionM   s7     !!# 	/JJ((.	/ 	/ 	/s	    :Ac               #      K    G d d      } t        t        d|       }	 t        `	 d || urt	        t        d|       yy# t        $ r Y 'w xY w# || urt	        t        d|       w w xY ww)zG
        In a context, remove and restore os.link if it exists
        c                       e Zd Zy)&sdist._remove_os_link.<locals>.NoValueN)__name__
__module____qualname__ r5   r   NoValuerH   [   s    r5   rM   linkN)r,   r&   rN   	Exceptionsetattr)rM   orig_vals     r   rE   zsdist._remove_os_linkT   sz     	 	 2vw/		.w&FH- '  		
 w&FH- 's8   A+A A A+	A
A+AA+A((A+c                 B    t         |           | j                          y r7   )superadd_defaults _add_defaults_build_sub_commandsr/   	__class__s    r   rT   zsdist.add_defaultsi   s    --/r5   c                     t         |           t        j                  j	                  d      r| j
                  j                  d       y y )Nzpyproject.toml)rS   _add_defaults_optionalr&   r'   isfiler$   r%   rV   s    r   rY   zsdist._add_defaults_optionalm   s7    &(77>>*+MM  !12 ,r5   c                     | j                   j                         r[| j                  d      }| j                  j	                  |j                                | j                  | j                  |             yy)zgetting python filesbuild_pyN)r-   has_pure_modulesr#   r$   extendget_source_files_add_data_files_safe_data_filesr/   r\   s     r   _add_defaults_pythonzsdist._add_defaults_pythonr   s]    --/11*=HMM  !:!:!<=  !6!6x!@A 0r5   c                       j                  d      }t        |j                               t        z
  } fd|D        }d |D        } j                  j                  t        j                  |             y )Nbuildc              3   @   K   | ]  }j                  |        y wr7   )r#   )r   cr/   s     r   r   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>}   s     D!**1-Ds   c              3   V   K   | ]!  }t        |d       s|j                          # yw)r_   N)hasattrr_   )r   rg   s     r   r   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>~   s#     V!wqBT7U##%Vs   )))r#   setr*   r	   r$   r^   r   from_iterable)r/   re   missing_cmdscmdsfiless   `    r   rU   z&sdist._add_defaults_build_sub_commandsy   s]    **73511347LLD|DVtVU0078r5   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_filesrb   s     r   ra   zsdist._safe_data_files   s     """r5   c                 H    | j                   j                  d |D               y)zA
        Add data files as found in build_py.data_files.
        c              3   t   K   | ]0  \  }}}}|D ]$  }t         j                  j                  ||       & 2 y wr7   )r&   r'   r(   )r   _src_dir	filenamesnames        r   r   z(sdist._add_data_files.<locals>.<genexpr>   sD      
(7Ay!
  GGLL$'
'
s   68N)r$   r^   )r/   rp   s     r   r`   zsdist._add_data_files   s#     	 
,6
 	
r5   c                 l    	 t         |           y # t        $ r t        j                  d       Y y w xY w)Nz&data_files contains unexpected objects)rS   _add_defaults_data_files	TypeErrorr   warnrV   s    r   rx   zsdist._add_defaults_data_files   s/    	?G,. 	?HH=>	?s    33c                     | j                   D ]#  }t        j                  j                  |      s# y  | j	                  ddj                  | j                         z          y )Nz,standard file not found: should have one of z, )READMESr&   r'   existsrz   r(   )r/   fs     r   r)   zsdist.check_readme   sN     	Aww~~a 	 II>		$,,'(r5   c                 r   t         j                  j                  | ||       t        j                  j                  |d      }t        t        d      rFt        j                  j                  |      r't        j                  |       | j                  d|       | j                  d      j                  |       y )Nz	setup.cfgrN   r    )r8   r   make_release_treer&   r'   r(   ri   r}   unlink	copy_filer#   save_version_info)r/   base_dirrn   dests       r   r   zsdist.make_release_tree   s{    

$$T8U; ww||Hk22v277>>$#7 IIdONN;-"":.@@Fr5   c                    t         j                  j                  | j                        syt	        j
                  | j                  d      5 }|j                         }d d d        dj                         k7  S # 1 sw Y   xY w)NFrbz+# file GENERATED by distutils, do NOT edit
)r&   r'   rZ   manifestioopenreadlineencode)r/   fp
first_lines      r   _manifest_is_not_generatedz sdist._manifest_is_not_generated   sh    ww~~dmm,WWT]]D) 	'RJ	'>EEGH 	I	' 	's   A77B c                    t        j                  d| j                         t        | j                  d      }|D ]S  }	 |j	                  d      }|j                         }|j                  d      s|s9| j                  j                  |       U |j                          y# t
        $ r t        j                  d|z         Y w xY w)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UnicodeDecodeErrorrz   strip
startswithr$   r%   close)r/   r   lines      r   read_manifestzsdist.read_manifest   s    
 	-t}}=t, 	'D{{7+
 ::<Ds#4MM  &	' 	 & =DEs   B  !CC)rI   rJ   rK   __doc__user_optionsnegative_optREADME_EXTENSIONStupler|   r4   r9   r:   r+   staticmethod
contextlibcontextmanagerrE   rT   rY   rc   rU   ra   r`   rx   r)   r   r   r   __classcell__)rW   s   @r   r   r      s    GL L3I7HIIG(&!
!/ .  .&03
B9#
?GIr5   r   )r   )	distutilsr   distutils.command.sdistcommandr   r8   r&   rA   r   r   	itertoolsr   
py36compatr   
_importlibr   re   r	   list_default_revctrlr   rL   r5   r   <module>r      sF     & & 	 
 	   * ! ( z

 zr5   