a
    ˆÀàg2  ã                   @   s¸   d dl Z d dlmZmZmZmZmZmZ d dlm	Z	 d dl
mZ zd dlmZ W n eyf   eZY n0 e	r�d dlmZ d dlmZ d dlmZ e  e¡Zd	d
„ Zddd„Zdd„ ZdS )é    N)ÚDIRECT_URL_METADATA_NAMEÚArchiveInfoÚ	DirectUrlÚDirectUrlValidationErrorÚDirInfoÚVcsInfo)ÚMYPY_CHECK_RUNNING)Úvcs)ÚJSONDecodeError)ÚOptional)ÚDistribution)ÚLinkc                 C   s¶   |   ¡  |d }g }t| jtƒr>|d | jj| j| jj¡7 }nHt| jtƒrl|| j7 }| jj	r†| 
| jj	¡ nt| jtƒs|J ‚|| j7 }| jrœ| 
d| j ¡ |r²|dd |¡ 7 }|S )z0Convert a DirectUrl to a pip requirement string.z @ z{}+{}@{}zsubdirectory=ú#ú&)ÚvalidateÚ
isinstanceÚinfor   Úformatr	   ÚurlÚ	commit_idr   ÚhashÚappendr   ÚsubdirectoryÚjoin)Ú
direct_urlÚnameÚrequirementZ	fragments© r   ú_/var/www/sistema_ama/venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.pyÚ%direct_url_as_pep440_direct_reference   s$    ÿ

r   Fc           
      C   sÀ   | j rlt | j¡}|sJ ‚| | j¡\}}}|r>|s8J ‚|}n|sFJ ‚| |¡}t|t|j	||d�| j
d�S |  ¡ rˆt| jtƒ | j
d�S d }| j}	|	r¤d |	| j¡}t| jt|d�| j
d�S d S )N)r	   r   Úrequested_revision)r   r   r   z{}={})r   )Úis_vcsr	   Úget_backend_for_schemeÚschemeÚget_url_rev_and_authÚurl_without_fragmentÚget_revisionr   r   r   Úsubdirectory_fragmentÚis_existing_dirr   Ú	hash_namer   r   r   )
ÚlinkÚ
source_dirZlink_is_in_wheel_cacheÚvcs_backendr   r    Ú_r   r   r)   r   r   r   Údirect_url_from_link6   sD    
ÿ
ýù	ýýr.   c              
   C   sd   |   t¡sdS zt |  t¡¡W S  tttfy^ } z t 	dt| j
|¡ W Y d}~dS d}~0 0 dS )zªObtain a DirectUrl from a pkg_resource.Distribution.

    Returns None if the distribution has no `direct_url.json` metadata,
    or if `direct_url.json` is invalid.
    NzError parsing %s for %s: %s)Úhas_metadatar   r   Ú	from_jsonÚget_metadatar   r
   ÚUnicodeDecodeErrorÚloggerÚwarningÚproject_name)ÚdistÚer   r   r   Údist_get_direct_urlh   s     
ýür8   )NF)ÚloggingÚpip._internal.models.direct_urlr   r   r   r   r   r   Úpip._internal.utils.typingr   Úpip._internal.vcsr	   Újsonr
   ÚImportErrorÚ
ValueErrorÚtypingr   Úpip._vendor.pkg_resourcesr   Úpip._internal.models.linkr   Ú	getLoggerÚ__name__r3   r   r.   r8   r   r   r   r   Ú<module>   s    


2