a
    ”¼de«(  ã                	   @   s<  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mZ d dlmZmZ d dlmZ d d	lmZmZ d d
lmZmZ d dlmZ e�rd dlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ d dl	m%Z%m&Z& d dl'm(Z( e#e!e$e)e&f  e*e e) f Z+e ,e-¡Z.ddd„Z/dd„ Z0G dd„ de1ƒZ2dS )é    )Úabsolute_importN)Úsix)Úcanonicalize_name)ÚRequirementParseError)Ú
BadCommandÚInstallationError)Úinstall_req_from_editableÚinstall_req_from_line)Ú
COMMENT_RE)Ú%direct_url_as_pep440_direct_referenceÚdist_get_direct_url)Údist_is_editableÚget_installed_distributions)ÚMYPY_CHECK_RUNNING)	Ú	ContainerÚDictÚIterableÚIteratorÚListÚOptionalÚSetÚTupleÚUnion)ÚDistributionÚRequirement)Ú
WheelCacheF© c	                 c   sÐ  |pg }|D ]}	d  |	¡V  qi }
t|d||d�D ]h}zt |¡}W n> ty‚ } z&t d||¡ W Y d }~q2W Y d }~n
d }~0 0 |r�|jr�q2||
|j< q2| �r–t	ƒ }t
 t¡}| D �]–}t|ƒ��v}|D �]^}| ¡ rô| ¡  d¡sô| d¡�r| ¡ }||vrÌ| |¡ |V  qÌ| d¡�s.| d¡�rt| d¡�rL|d	d …  ¡ }n|tdƒd …  ¡  d
¡}t||d�}ntt d|¡ ¡ |d�}|j�s²t d|| ¡ ¡ t d¡ qÌt|jƒ}||
v�r||j �sòt d|t d|¡ ¡ |j¡ n||j  |¡ qÌt|
| ƒ ¡ V  |
|= ||j  |¡ qÌW d   ƒ q¶1 �sD0    Y  q¶t |¡D ]4\}}t|ƒdk�rZt d|d t t	|ƒƒ¡¡ �qZdV  t |
 !¡ dd„ d�D ] }|j|v�rªt|ƒ ¡ V  �qªd S )Nz-f {}r   )Ú
local_onlyÚskipÚ	user_onlyÚpathsz6Could not generate requirement for distribution %r: %sú#)z-rz--requirementz-fz--find-linksz-iz--index-urlz--prez--trusted-hostz--process-dependency-linksz--extra-index-urlz--use-featurez-ez
--editableé   ú=)ÚisolatedÚ zWSkipping line in requirement file [%s] because it's not clear what it would install: %sz9  (add #egg=PackageName to the URL to avoid this warning)zBRequirement file [%s] contains %s, but package %r is not installedé   z+Requirement %s included multiple times [%s]z, z7## The following requirements were added by pip freeze:c                 S   s
   | j  ¡ S ©N)ÚnameÚlower)Úxr   r   úX/var/www/sistema_ama/venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.pyÚ<lambda>¯   ó    zfreeze.<locals>.<lambda>)Úkey)"Úformatr   ÚFrozenRequirementÚ	from_distr   ÚloggerÚwarningÚeditableÚcanonical_nameÚsetÚcollectionsÚdefaultdictÚlistÚopenÚstripÚ
startswithÚrstripÚaddÚlenÚlstripr   r	   r
   Úsubr(   Úinfor   ÚappendÚstrr   Ú	iteritemsÚjoinÚsortedÚvalues)ÚrequirementÚ
find_linksr   r   r    r$   Úwheel_cacheZexclude_editabler   ÚlinkZinstallationsÚdistÚreqÚexcZemitted_optionsZ	req_filesZreq_file_pathÚreq_fileÚlineZline_reqZline_req_canonical_namer(   ÚfilesZinstallationr   r   r+   Úfreeze/   s¬    ü
þ"



ÿþ
þþýÿÿ
ûÿ4ÿÿÿ
rS   c              
   C   sL  t | ƒsddg fS tj tj | j¡¡}ddlm}m} | 	|¡}|du rv|  
¡ }t d||¡ d |¡g}|d|fS z| || j¡}W n’ |yÀ   |  
¡ }d t|ƒj|¡g}|d|f Y S  tyê   t d	||j¡ ddg f Y S  t�y } zt d
|¡ W Y d}~nd}~0 0 |du�r0|dg fS t d|¡ dg}dd|fS )zk
    Compute and return values (req, editable, comments) for use in
    FrozenRequirement.from_dist().
    NFr   )ÚRemoteNotFoundErrorÚvcsz1No VCS found for editable requirement "%s" in: %rz/# Editable install with no version control ({})Tz)# Editable {} install with no remote ({})zPcannot determine version of editable source in %s (%s command not found in path)zYError when trying to get requirement for VCS system %s, falling back to uneditable formatz-Could not determine repository location of %sz-## !! Could not determine repository location)r   ÚosÚpathÚnormcaseÚabspathÚlocationÚpip._internal.vcsrT   rU   Úget_backend_for_dirÚas_requirementr2   Údebugr/   Úget_src_requirementÚproject_nameÚtypeÚ__name__r   r3   r(   r   )rM   rZ   rT   rU   Úvcs_backendrN   ÚcommentsrO   r   r   r+   Úget_requirement_info´   sT    

þÿ

ÿÿüþ

ÿre   c                   @   s*   e Zd Zd	dd„Zedd„ ƒZdd„ ZdS )
r0   r   c                 C   s&   || _ t|ƒ| _|| _|| _|| _d S r'   )r(   r   r5   rN   r4   rd   )Úselfr(   rN   r4   rd   r   r   r+   Ú__init__ó   s
    
zFrozenRequirement.__init__c                 C   sX   t |ƒ\}}}|d u r6|s6t|ƒ}|r6t||jƒ}g }|d u rF| ¡ }| |j|||d�S )N)rd   )re   r   r   r`   r]   )ÚclsrM   rN   r4   rd   Ú
direct_urlr   r   r+   r1   û   s    ÿzFrozenRequirement.from_distc                 C   s4   | j }| jrd |¡}d t| jƒt|ƒg ¡d S )Nz-e {}Ú
)rN   r4   r/   rF   r9   rd   rD   )rf   rN   r   r   r+   Ú__str__  s    
zFrozenRequirement.__str__N)r   )rb   Ú
__module__Ú__qualname__rg   Úclassmethodr1   rk   r   r   r   r+   r0   ò   s   

r0   )	NNFFNFNFr   )3Ú
__future__r   r7   ÚloggingrV   Úpip._vendorr   Úpip._vendor.packaging.utilsr   Zpip._vendor.pkg_resourcesr   Úpip._internal.exceptionsr   r   Úpip._internal.req.constructorsr   r	   Zpip._internal.req.req_filer
   Ú&pip._internal.utils.direct_url_helpersr   r   Úpip._internal.utils.miscr   r   Úpip._internal.utils.typingr   Útypingr   r   r   r   r   r   r   r   r   r   r   Úpip._internal.cacher   rD   ÚboolZRequirementInfoÚ	getLoggerrb   r2   rS   re   Úobjectr0   r   r   r   r+   Ú<module>   s>   ,
         ÷
 >