
    ,h                        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y)    )annotationsN)chain)ClassVar   )metadata)Distribution   )_ORIGINAL_SUBCOMMANDS)logc              #     K   t        j                  d      D ]   } |j                         |       E d{    " y7 w)z%Find all files under revision controlzsetuptools.file_finders)groupN)r   entry_pointsload)dirnameeps     Z/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/setuptools/command/sdist.pywalk_revctrlr      s:     ##*CD &2779W%%%&%s   3?=?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) z.rstz.txtz.mdc              #  &   K   | ]	  }d |   yw)READMEN ).0exts     r   	<genexpr>zsdist.<genexpr>8   s     @sfSEN@s   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getattrr   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                  |        y N)origr   initialize_optionsr2   s    r   r<   zsdist.initialize_optionsM   s    

%%d+r8   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_linkr;   r   r/   r=   s    r   r/   zsdist.make_distributionP   s7     !!# 	/JJ((.	/ 	/ 	/s	    :Ac               #     K    G d d      } t        t        d|       }	 t        `	 d || ur|t        _        yy# t        $ r Y !w xY w# || ur|t        _        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__r   r8   r   NoValuerB   ^   s    r8   rF   linkN)r0   r*   rG   	Exception)rF   orig_vals     r   r?   zsdist._remove_os_linkW   sp     	 	 2vw/		#w&" '  		
 w&" 's6   A; A
 A	AAAA
AAc                B    t         |           | j                          y r:   )superadd_defaults _add_defaults_build_sub_commandsr2   	__class__s    r   rL   zsdist.add_defaultsl   s    --/r8   c                    t         |           t        j                  j	                  d      r| j
                  j                  d       y y )Nzpyproject.toml)rK   _add_defaults_optionalr*   r+   isfiler(   r)   rN   s    r   rQ   zsdist._add_defaults_optionalp   s7    &(77>>*+MM  !12 ,r8   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r2   rT   s     r   _add_defaults_pythonzsdist._add_defaults_pythonu   s]    --/11*=HMM  !:!:!<=  !6!6x!@A 0r8   c                      j                  d      }t        |j                               t        z
  } fd|D        }d |D        } j                  j                  t        j                  |             y )Nbuildc              3  @   K   | ]  }j                  |        y wr:   )r'   )r    cr2   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)rW   N)hasattrrW   )r    r_   s     r   r"   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>   s#     V!wqBT7U##%Vs   )))r'   setr.   r
   r(   rV   r   from_iterable)r2   r]   missing_cmdscmdsfiless   `    r   rM   z&sdist._add_defaults_build_sub_commands|   s]    **73511347LLD|DVtVU0078r8   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_filesrZ   s     r   rY   zsdist._safe_data_files   s     """r8   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r:   )r*   r+   r,   )r    _src_dir	filenamesnames        r   r"   z(sdist._add_data_files.<locals>.<genexpr>   sD      
(7Ay!
  GGLL$'
'
s   68N)r(   rV   )r2   rh   s     r   rX   zsdist._add_data_files   s#     	 
,6
 	
r8   c                l    	 t         |           y # t        $ r t        j                  d       Y y w xY w)Nz&data_files contains unexpected objects)rK   _add_defaults_data_files	TypeErrorr   warnrN   s    r   rp   zsdist._add_defaults_data_files   s/    	?G,. 	?HH=>	?s    33c                    t         |           t        j                  t        j
                        }| j                  j                  d|z   d       y )Nz^(\.tox|\.nox|\.venv)T)is_regex)rK   prune_file_listreescaper*   sepr(   exclude_pattern)r2   rx   rO   s     r   ru   zsdist.prune_file_list   s=    !ii%%&>&Dt%Tr8   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+   existsrr   r,   )r2   fs     r   r-   zsdist.check_readme   sK     	Aww~~a 	 II>4<<AXXr8   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.cfgrG   r$   )r;   r   make_release_treer*   r+   r,   ra   r|   unlink	copy_filer'   save_version_info)r2   base_dirrf   dests       r   r   zsdist.make_release_tree   s{    

$$T8U; ww||Hk22v277>>$#7 IIdONN;-"":.@@Fr8   c                    t         j                  j                  | j                        syt	        | j                  d      5 }|j                         }d d d        |dk7  S # 1 sw Y   dk7  S xY w)NFrbs+   # file GENERATED by distutils, do NOT edit
)r*   r+   rR   manifestopenreadline)r2   fp
first_lines      r   _manifest_is_not_generatedz sdist._manifest_is_not_generated   s\    ww~~dmm,$--& 	'"J	'LLL	'LLLs   AA,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       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  not UTF-8 decodable -- skipping#N)r   infor   r   decodeUnicodeDecodeErrorrr   strip
startswithr(   r)   close)r2   r   
bytes_linelines       r   read_manifestzsdist.read_manifest   s    
 	-t}}=t," 	'J!((1
 ::<Ds#4MM  &	' 	 & D8#CDEs   B  !CC)returnNone)rC   rD   rE   __doc__user_options__annotations__r   README_EXTENSIONStupler{   r7   r<   r/   staticmethod
contextlibcontextmanagerr?   rL   rQ   r[   rM   rY   rX   rp   ru   r-   r   r   r   __classcell__)rO   s   @r   r   r      s    GL0 -/L*/3@.?@@G(&,/ #  #&03
B9#
?UGMr8   r   )r   )
__future__r   r   r*   rv   	itertoolsr   typingr   
_importlibr   distr   r]   r
   distutils.command.sdistcommandr   r;   	distutilsr   list_default_revctrlr   r   r8   r   <module>r      sF    "  	 	   !  ( & &  &@DJJ @r8   