o
    0g                  	   @   sx   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e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)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   m/home/www/bk.finsightngr.online/venv20/lib/python3.10/site-packages/pip/_internal/utils/direct_url_helpers.py%direct_url_as_pep440_direct_reference   s&   

r   NFlink
source_dir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   

	r-   )NF)typingr   pip._internal.models.direct_urlr   r   r   r   pip._internal.models.linkr   pip._internal.vcsr   strr   boolr-   r   r   r   r   <module>   s    