
    ]fm                        d dl m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 d dlmc mZ d d	lmZ eZddZ G d dej                  ZdS )    )annotationsN)chain   )metadata)Distribution   )_ORIGINAL_SUBCOMMANDS)log 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     U/var/www/html/software/conda/lib/python3.11/site-packages/setuptools/command/sdist.pywalk_revctrlr      s[      #*CDDD & &27799W%%%%%%%%%%& &    c                      e Zd ZU dZg dZded<   i Zded<   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 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   distributionzdict[str, str]negative_opt)r   z.rstz.txtz.mdc              #  @   K   | ]}d                      |          V  dS )z	README{0}N)format).0exts     r   	<genexpr>zsdist.<genexpr>7   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getattrr   archive_files)selfei_cmdcmd_namer$   filedatas         r   runz	sdist.run9   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r1   s    r   r:   zsdist.initialize_optionsL   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_linkr9   r   r.   r;   s    r   r.   zsdist.make_distributionO   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@   ]   s        Dr   rE   linkN)r/   r)   rF   	Exception)rE   orig_vals     r   r=   zsdist._remove_os_linkV   s      	 	 	 	 	 	 	 	 2vw//	 	 	 	D		#EEEw&&" '&xw&&"""""s   / 
<< A A*c                p    t                                                       |                                  d S r8   )superadd_defaults _add_defaults_build_sub_commandsr1   	__class__s    r   rK   zsdist.add_defaultsk   s1    --/////r   c                    t                                                       t          j                            d          r| j                            d           d S d S )Nzpyproject.toml)rJ   _add_defaults_optionalr)   r*   isfiler'   r(   rM   s    r   rP   zsdist._add_defaults_optionalo   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r1   rS   s     r   _add_defaults_pythonzsdist._add_defaults_pythont   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 r8   )r&   )r   cr1   s     r   r!   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>   s1      DD!**1--DDDDDDr   c              3  ^   K   | ](}t          |d           |                                V  )dS )rV   N)hasattrrV   )r   r^   s     r   r!   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>   s>      VV!wqBT7U7UV##%%VVVVVVr   )r&   setr-   r	   r'   rU   r   from_iterable)r1   r\   missing_cmdscmdsfiless   `    r   rL   z&sdist._add_defaults_build_sub_commands{   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_filesrY   s     r   rX   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 r8   )r)   r*   r+   )r   _src_dir	filenamesnames        r   r!   z(sdist._add_data_files.<locals>.<genexpr>   se       
 
(7Ay!
 
  GLL$''
 
 
 
 
 
 
r   N)r'   rU   )r1   rg   s     r   rW   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)rJ   _add_defaults_data_files	TypeErrorr
   warnrM   s    r   ro   zsdist._add_defaults_data_files   sY    	?GG,,..... 	? 	? 	?H=>>>>>>	?s    % AAc                    t                                                       t          j        t          j                  }| j                            d|z   d           d S )Nz^(\.tox|\.nox|\.venv)T)is_regex)rJ   prune_file_listreescaper)   sepr'   exclude_pattern)r1   rw   rN   s     r   rt   zsdist.prune_file_list   sQ    !!!i%%&>&Dt%TTTTTr   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*   existsrq   r+   )r1   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.cfgrF   r#   )r9   r   make_release_treer)   r*   r+   r`   r{   unlink	copy_filer&   save_version_info)r1   base_dirre   dests       r   r~   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*   rQ   manifestopenreadline)r1   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UnicodeDecodeErrorrq   strip
startswithr'   r(   close)r1   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/)rA   rB   rC   __doc__user_options__annotations__r   README_EXTENSIONStuplerz   r6   r:   r.   staticmethod
contextlibcontextmanagerr=   rK   rP   rZ   rL   rX   rW   ro   rt   r,   r~   r   r   __classcell__)rN   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# # #
 
 
? ? ? ? ?U U U U U  G G GM M M      r   r   )r   )
__future__r   r   r)   ru   	itertoolsr   
_importlibr   distr   r\   r	   distutils.command.sdistcommandr   r9   	distutilsr
   list_default_revctrlr   rD   r   r   <module>r      s   " " " " " "     				 				       ! ! ! ! ! !       ( ( ( ( ( ( & & & & & & & & &       & & & &@ @ @ @ @DJ @ @ @ @ @r   