
    ϶vg                        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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)ClassVar   )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/pixelcanvas.ch/venv/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dZ
ddZddZeej        d                         Zd fdZ fdZd Zd Zd Zd Z fdZd fdZddZd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ClassVar[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>8   s0      IIK&&s++IIIIIIr   returnNonec                   |                      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.run:   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r4   s    r   r=   zsdist.initialize_optionsM   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_linkr<   r   r1   r>   s    r   r1   zsdist.make_distributionP   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   NoValuerC   ^   s        Dr   rH   linkN)r2   r,   rI   	Exception)rH   orig_vals     r   r@   zsdist._remove_os_linkW   s      	 	 	 	 	 	 	 	 2vw//	 	 	 	D		#EEEw&&" '&xw&&"""""s   / 
<< A A*c                p    t                                                       |                                  d S r;   )superadd_defaults _add_defaults_build_sub_commandsr4   	__class__s    r   rN   zsdist.add_defaultsl   s1    --/////r   c                    t                                                       t          j                            d          r| j                            d           d S d S )Nzpyproject.toml)rM   _add_defaults_optionalr,   r-   isfiler*   r+   rP   s    r   rS   zsdist._add_defaults_optionalp   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r4   rV   s     r   _add_defaults_pythonzsdist._add_defaults_pythonu   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 r;   )r)   )r    cr4   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 )rY   N)hasattrrY   )r    ra   s     r   r"   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>   s>      VV!wqBT7U7UV##%%VVVVVVr   )r)   setr0   r
   r*   rX   r   from_iterable)r4   r_   missing_cmdscmdsfiless   `    r   rO   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_filesr\   s     r   r[   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 r;   )r,   r-   r.   )r    _src_dir	filenamesnames        r   r"   z(sdist._add_data_files.<locals>.<genexpr>   se       
 
(7Ay!
 
  GLL$''
 
 
 
 
 
 
r   N)r*   rX   )r4   rj   s     r   rZ   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)rM   _add_defaults_data_files	TypeErrorr   warnrP   s    r   rr   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)rM   prune_file_listreescaper,   sepr*   exclude_pattern)r4   rz   rQ   s     r   rw   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-   existsrt   r.   )r4   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.cfgrI   r&   )r<   r   make_release_treer,   r-   r.   rc   r~   unlink	copy_filer)   save_version_info)r4   base_dirrh   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-   rT   manifestopenreadline)r4   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UnicodeDecodeErrorrt   strip
startswithr*   r+   close)r4   r   
bytes_linelines       r   read_manifestzsdist.read_manifest   s    
 	-t}===t,," 	' 	'J!((11%   =DEEE ::<<Ds## 4 M  &&&&s   A!A/.A/)r#   r$   )rD   rE   rF   __doc__user_options__annotations__r   README_EXTENSIONStupler}   r9   r=   r1   staticmethod
contextlibcontextmanagerr@   rN   rS   r]   rO   r[   rZ   rr   rw   r/   r   r   r   __classcell__)rQ   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 03 3 3 3 3
B B B9 9 9# # #
 
 
? ? ? ? ?U U U U U U   G G G GM M M      r   r   )r   )
__future__r   r   r,   rx   	itertoolsr   typingr   
_importlibr   distr   r_   r
   distutils.command.sdistcommandr   r<   	distutilsr   list_default_revctrlr   rG   r   r   <module>r      s   " " " " " "     				 				             ! ! ! ! ! !       ( ( ( ( ( ( & & & & & & & & &       & & & &@ @ @ @ @DJ @ @ @ @ @r   