
    uYf                         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y)    )logN)chain   )metadata   )_ORIGINAL_SUBCOMMANDSc              #      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     X/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/setuptools/command/sdist.pywalk_revctrlr      s:     ##*CD &2779W%%%&%s   3?=?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]) z.rstz.txtz.mdc              #   >   K   | ]  }d j                  |        yw)z	README{0}N)format).0exts     r   	<genexpr>zsdist.<genexpr>1   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.run3   s    $++J7RWW\\&//=IJ --/ 	'HX&	' 	 T..bA
&& 	(DR&D:%!!$'	(    c                 B    t         j                  j                  |        y N)origr   initialize_optionsr-   s    r   r7   zsdist.initialize_optionsF   s    

%%d+r3   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_linkr6   r   r)   r8   s    r   r)   zsdist.make_distributionI   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__ r3   r   NoValuer=   W   s    r3   rB   linkN)r*   r$   rC   	Exception)rB   orig_vals     r   r:   zsdist._remove_os_linkP   sp     	 	 2vw/		#w&" '  		
 w&" 's6   A; A
 A	AAAA
AAc                 B    t         |           | j                          y r5   )superadd_defaults _add_defaults_build_sub_commandsr-   	__class__s    r   rH   zsdist.add_defaultse   s    --/r3   c                     t         |           t        j                  j	                  d      r| j
                  j                  d       y y )Nzpyproject.toml)rG   _add_defaults_optionalr$   r%   isfiler"   r#   rJ   s    r   rM   zsdist._add_defaults_optionali   s7    &(77>>*+MM  !12 ,r3   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-   rP   s     r   _add_defaults_pythonzsdist._add_defaults_pythonn   s]    --/11*=HMM  !:!:!<=  !6!6x!@A 0r3   c                       j                  d      }t        |j                               t        z
  } fd|D        }d |D        } j                  j                  t        j                  |             y )Nbuildc              3   @   K   | ]  }j                  |        y wr5   )r!   )r   cr-   s     r   r   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>y   s     D!**1-Ds   c              3   V   K   | ]!  }t        |d       s|j                          # yw)rS   N)hasattrrS   )r   r[   s     r   r   z9sdist._add_defaults_build_sub_commands.<locals>.<genexpr>z   s#     V!wqBT7U##%Vs   )))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511347LLD|DVtVU0078r3   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     """r3   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r5   )r$   r%   r&   )r   _src_dir	filenamesnames        r   r   z(sdist._add_data_files.<locals>.<genexpr>   sD      
(7Ay!
  GGLL$'
'
s   68N)r"   rR   )r-   rd   s     r   rT   zsdist._add_data_files   s#     	 
,6
 	
r3   c                 l    	 t         |           y # t        $ r t        j                  d       Y y 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   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%   existsrn   r&   )r-   fs     r   r'   zsdist.check_readme   sK     	Aww~~a 	 II>4<<AXXr3   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.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; ww||Hk22v277>>$#7 IIdONN;-"":.@@Fr3   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%   rN   manifestopenreadline)r-   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|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UnicodeDecodeErrorrn   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)r>   r?   r@   __doc__user_optionsnegative_optREADME_EXTENSIONStuplerp   r2   r7   r)   staticmethod
contextlibcontextmanagerr:   rH   rM   rW   rI   rU   rT   rl   r'   rt   r   r   __classcell__)rK   s   @r   r   r      s    GL0 L3I7HIIG(&,/ #  #&03
B9#
?GMr3   r   )r   )	distutilsr   distutils.command.sdistcommandr   r6   r$   r   	itertoolsr   
_importlibr   rY   r   list_default_revctrlr   rA   r3   r   <module>r      s:     & & 	   ! ( &yDJJ yr3   