
    Ki                    j    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ZddZ	 dddZdS )    )annotations)ArchiveInfo	DirectUrlDirInfoVcsInfo)Link)path_to_url)vcs
direct_urlr   namestrreturnc                ,   |                                   |dz   }g }t          | j        t                    r'|| j        j         d| j         d| j        j         z  }nvt          | j        t                    r6|| j        z  }| j        j        r|	                    | j        j                   n&t          | j        t                    sJ || j        z  }| j        r|	                    d| j        z              |r|dd                    |          z   z  }|S )z0Convert a DirectUrl to a pip requirement string.z @ +@zsubdirectory=#&)validate
isinstanceinfor   r
   url	commit_idr   hashappendr   subdirectoryjoin)r   r   requirement	fragmentss       ^/srv/django_bis/venv311/lib/python3.11/site-packages/pip/_internal/utils/direct_url_helpers.py%direct_url_as_pep440_direct_referencer    	   s%   ,KI*/7++ 
&"QQZ^QQjo6OQQ	
 
JO[	1	1 &z~%? 	3Z_1222*/733333z~% D:+BBCCC 1sSXXi0000    
source_dirc                Z    t          t          |           t          d                    S )NT)editable)r   r   )r   r	   r   )r"   s    r   direct_url_for_editabler%       s2    
##d###   r!   NFlinkr   
str | Nonelink_is_in_wheel_cacheboolc                   | j         rt          j        | j                  }|sJ |                    | j                  \  }}}|r|sJ |}n|sJ |                    |          }t          |t          |j	        ||          | j
                  S |                                 r(t          | j        t                      | j
                  S d }| j        }	|	r|	 d| j         }t          | j        t          |          | j
                  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   r5   s
             r   direct_url_from_linkr8   '   si    { -
0=={%0%E%E%&
 &
" " 	= &%%%*II
 :#00<<I$##5  
 3
 
 
 	
 
				 
)3
 
 
 	
 N	 	.--$)--D)$'''3
 
 
 	
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%   r8    r!   r   <module>r?      s    " " " " " " T T T T T T T T T T T T * * * * * * 0 0 0 0 0 0 ! ! ! ! ! !   .    OT0
 0
 0
 0
 0
 0
 0
r!   