o
    8j#                     @  sn   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ddZdddZ	ddddZdS )    )annotations)ArchiveInfo	DirectUrlDirInfoVcsInfo)Link)path_to_url)vcs
direct_urlr   namestrreturnc                 C  s   |    |d }g }| jr|| jj d| j d| jj 7 }n-| jrB|| j7 }| jjrAtt| jj	 \}}|
| d|  n
| jsGJ || j7 }| jrW|
d| j  |rb|dd| 7 }|S )z0Convert a DirectUrl to a pip requirement string.z @ +@=zsubdirectory=#&)validatevcs_infor	   url	commit_idarchive_infohashesnextiteritemsappenddir_infosubdirectoryjoin)r
   r   requirement	fragmentshash_algorithm
hash_value r$   /opt/pipey-apps/247c6e86-d9cc-49a2-98d3-9f311455f2db/.venv/lib/python3.10/site-packages/pip/_internal/utils/direct_url_helpers.py%direct_url_as_pep440_direct_reference	   s0   


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linkr   
str | Nonelink_is_in_wheel_cacheboolc           	      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 | jrS| jsLJ | j| ji}nd }t| jt|d| j
dS )N)r	   r   requested_revision)r   r   r   )r   r   r   )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_namehashr   )	r*   r'   r,   vcs_backendr   r.   _r   r   r$   r$   r%   direct_url_from_link+   sF   

	
r;   )r
   r   r   r   r   r   )r'   r   r   r   )NF)r*   r   r'   r+   r,   r-   r   r   )
__future__r   pip._internal.models.direct_urlr   r   r   r   pip._internal.models.linkr   pip._internal.utils.urlsr   pip._internal.vcsr	   r&   r)   r;   r$   r$   r$   r%   <module>   s    

