a
    åYEgœ  ã                   @   sˆ   d dl mZ d dlm  mZ d dlZd dlZd dlZd dl	Z	d dl
mZmZ ddlmZ d dlZeZddd„ZG d	d
„ d
eejƒZdS )é    )ÚlogN)ÚsixÚordered_seté   )Úsdist_add_defaultsÚ c                 c   s,   t  d¡D ]}| ¡ | ƒD ]
}|V  qq
dS )z%Find all files under revision controlzsetuptools.file_findersN)Úpkg_resourcesÚiter_entry_pointsÚload)ÚdirnameÚepÚitem© r   úQ/var/www/sistema_ama/venv/lib/python3.9/site-packages/setuptools/command/sdist.pyÚwalk_revctrl   s    r   c                       s  e Zd ZdZg d¢Zi Zg d¢Zedd„ eD ƒƒZdd„ Z	dd	„ Z
d
d„ Zdd„ Zeejdd„ ƒƒZdd„ Zejdk p¨dej  koŠdk n  p¨dej  ko¤dk n  Zer²eZ‡ fdd„Zdd„ Zdd„ Zdd„ Z‡ fdd „Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Z‡  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])r   z.rstz.txtz.mdc                 c   s   | ]}d   |¡V  qdS )z	README{0}N)Úformat)Ú.0Úextr   r   r   Ú	<genexpr>)   ó    zsdist.<genexpr>c                 C   s–   |   d¡ |  d¡}|j| _| j tj |jd¡¡ |  ¡  |  	¡ D ]}|   |¡ qD|  
¡  t| jdg ƒ}| jD ] }dd|f}||vrp| |¡ qpd 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ÚgetattrÚdistributionZarchive_files)ÚselfÚei_cmdÚcmd_namer   ÚfileÚdatar   r   r   Úrun+   s    



z	sdist.runc                 C   s   t j | ¡ |  ¡  d S ©N)Úorigr   Úinitialize_optionsÚ_default_to_gztar©r'   r   r   r   r/   >   s    zsdist.initialize_optionsc                 C   s   t jdkrd S dg| _d S )N)é   é   r   Úbetar   Úgztar)ÚsysÚversion_infoÚformatsr1   r   r   r   r0   C   s    
zsdist._default_to_gztarc                 C   s8   |   ¡  tj | ¡ W d  ƒ n1 s*0    Y  dS )z%
        Workaround for #516
        N)Ú_remove_os_linkr.   r   r$   r1   r   r   r   r$   I   s    
zsdist.make_distributionc               
   c   sp   G dd„ dƒ} t td| ƒ}zt`W n ty4   Y n0 zdV  W || urlttd|ƒ n|| urjttd|ƒ 0 dS )zG
        In a context, remove and restore os.link if it exists
        c                   @   s   e Zd ZdS )z&sdist._remove_os_link.<locals>.NoValueN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ÚNoValueW   s   r=   ÚlinkN)r%   r   r>   Ú	ExceptionÚsetattr)r=   Zorig_valr   r   r   r9   P   s    ÿzsdist._remove_os_linkc                 C   sJ   zt j | ¡ W n4 tyD   t ¡ \}}}|jjjd  	¡  ‚ Y n0 d S )NÚtemplate)
r.   r   Úread_templater?   r6   Úexc_infoÚtb_nextÚtb_frameÚf_localsÚclose)r'   Ú_Útbr   r   r   Z__read_template_hacke   s    zsdist.__read_template_hack)é   é   rJ   )r2   r   )r2   r   é   )r2   rJ   )r2   rJ   r   c                    s8   t jrt | ¡ n
tƒ  ¡  tj d¡r4| j 	d¡ d S )Nzpyproject.toml)
r   ÚPY2r   Ú_add_defaults_optionalÚsuperr   r    Úisfiler   r   r1   ©Ú	__class__r   r   rN   |   s
    
zsdist._add_defaults_optionalc                 C   s8   | j  ¡ r4|  d¡}| j | ¡ ¡ |  |  |¡¡ dS )zgetting python filesÚbuild_pyN)r&   Úhas_pure_modulesr   r   ÚextendZget_source_filesÚ_add_data_filesÚ_safe_data_files©r'   rS   r   r   r   Ú_add_defaults_python„   s    

zsdist._add_defaults_pythonc                 C   s   | j jrdS |jS )z¶
        Extracting data_files from build_py is known to cause
        infinite recursion errors when `include_package_data`
        is enabled, so suppress it in that case.
        r   )r&   Úinclude_package_dataÚ
data_filesrX   r   r   r   rW   ‹   s    zsdist._safe_data_filesc                 C   s   | j  dd„ |D ƒ¡ dS )zA
        Add data files as found in build_py.data_files.
        c                 s   s.   | ]&\}}}}|D ]}t j ||¡V  qqd S r-   )r   r    r!   )r   rH   Zsrc_dirÚ	filenamesÚnamer   r   r   r   ™   s   
þz(sdist._add_data_files.<locals>.<genexpr>N)r   rU   )r'   r[   r   r   r   rV   •   s    þzsdist._add_data_filesc                    sB   z t jrt | ¡ n
tƒ  ¡  W n ty<   t d¡ Y n0 d S )Nz&data_files contains unexpected objects)r   rM   r   Ú_add_defaults_data_filesrO   Ú	TypeErrorr   Úwarnr1   rQ   r   r   r^   Ÿ   s    zsdist._add_defaults_data_filesc                 C   s8   | j D ]}tj |¡r d S q|  dd | j ¡ ¡ d S )Nz,standard file not found: should have one of z, )ÚREADMESr   r    Úexistsr`   r!   )r'   Úfr   r   r   r"   ¨   s    

ÿÿzsdist.check_readmec                 C   s^   t j | ||¡ tj |d¡}ttdƒrJtj |¡rJt |¡ |  	d|¡ |  
d¡ |¡ d S )Nz	setup.cfgr>   r   )r.   r   Úmake_release_treer   r    r!   Úhasattrrb   ÚunlinkÚ	copy_filer   Úsave_version_info)r'   Úbase_dirÚfilesÚdestr   r   r   rd   ²   s    
zsdist.make_release_treec                 C   sT   t j | j¡sdS t | jd¡}| ¡ }W d   ƒ n1 s>0    Y  |d ¡ kS )NFÚrbz+# file GENERATED by distutils, do NOT edit
)r   r    rP   ÚmanifestÚioÚopenÚreadlineÚencode)r'   ÚfpÚ
first_liner   r   r   Ú_manifest_is_not_generated¿   s    &ÿz sdist._manifest_is_not_generatedc              	   C   sŽ   t  d| j¡ t| jdƒ}|D ]b}tjs\z| d¡}W n$ tyZ   t  d| ¡ Y qY n0 | 	¡ }| 
d¡s|stq| j |¡ q| ¡  dS )zªRead 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'rl   zUTF-8z"%r not UTF-8 decodable -- skippingú#N)r   Úinform   ro   r   rM   ÚdecodeÚUnicodeDecodeErrorr`   ÚstripÚ
startswithr   r   rG   )r'   rm   Úliner   r   r   Úread_manifestÉ   s    
zsdist.read_manifestc                 C   s°   t  ¡ }| j d¡}| dd¡\}}|du r8t d¡ n
| |¡ z| | jj	j
¡ W n tyr   t d¡ Y n0 |D ]&}tj |¡sxt d|¡ | |¡ qx| j |¡ dS )zvChecks if license_file' or 'license_files' is configured and adds any
        valid paths to 'self.filelist'.
        ÚmetadataÚlicense_file)NNNz''license_file' option was not specifiedz,warning: 'license_files' option is malformedz8warning: Failed to find the configured license file '%s')r   Ú
OrderedSetr&   Úget_option_dictÚgetr   ÚdebugÚaddÚupdater}   Úlicense_filesr_   r`   r   r    rb   Úremover   rU   )r'   rj   ÚoptsrH   r~   rc   r   r   r   Úcheck_licenseß   s$    
þzsdist.check_license)!r:   r;   r<   Ú__doc__Úuser_optionsÚnegative_optZREADME_EXTENSIONSÚtuplera   r,   r/   r0   r$   ÚstaticmethodÚ
contextlibÚcontextmanagerr9   Z_sdist__read_template_hackr6   r7   Zhas_leaky_handlerB   rN   rY   rW   rV   r^   r"   rd   rt   r|   rˆ   Ú__classcell__r   r   rQ   r   r      s<   
ÿý

	

r   )r   )Ú	distutilsr   Zdistutils.command.sdistÚcommandr   r.   r   r6   rn   rŽ   Úsetuptools.externr   r   Z
py36compatr   r   ÚlistZ_default_revctrlr   r   r   r   r   Ú<module>   s   
