o
    Ëý°j†  ã                	   @   s–   d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ dededefd	d
„Zdedefdd„Z	ddedee dedefdd„ZdS )é    )ÚOptional)ÚArchiveInfoÚ	DirectUrlÚDirInfoÚVcsInfo)ÚLink)Úpath_to_url)ÚvcsÚ
direct_urlÚnameÚreturnc                 C   s¶   |   ¡  |d }g }t| jtƒr|d | jj| j| jj¡7 }n$t| jtƒr6|| j7 }| jj	r5| 
| jj	¡ nt| jtƒs>J ‚|| j7 }| jrN| 
d| j ¡ |rY|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)r
   r   ÚrequirementÚ	fragments© r   ú™/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pip/_internal/utils/direct_url_helpers.pyÚ%direct_url_as_pep440_direct_reference	   s&   ÿ
€
r   Ú
source_dirc                 C   s   t t| ƒtdd�d�S )NT)Úeditable)r   r   )r   r   r   )r   r   r   r   Údirect_url_for_editable    s   þr    NFÚlinkÚlink_is_in_wheel_cachec           
      C   s¾   | j r6t | j¡}|sJ ‚| | j¡\}}}|r|sJ ‚|}n	|s#J ‚| |¡}t|t|j	||d�| j
d�S |  ¡ rDt| jtƒ | j
d�S d }| j}	|	rS|	› d| j› �}t| jt|d�| j
d�S )N)r	   r   Úrequested_revision)r   r   r   ú=)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!   r   r"   Úvcs_backendr   r#   Ú_r   r   r-   r   r   r   Údirect_url_from_link'   sF   
ÿ
ýù	ýýr0   )NF)Útypingr   Úpip._internal.models.direct_urlr   r   r   r   Úpip._internal.models.linkr   Úpip._internal.utils.urlsr   Úpip._internal.vcsr	   Ústrr   r    Úboolr0   r   r   r   r   Ú<module>   s"    ÿÿÿÿþ