
    Kxh              	           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	Zd
edefdZ	 dded
ee         dedefdZdS )    )Optional)ArchiveInfo	DirectUrlDirInfoVcsInfo)Link)path_to_url)vcs
direct_urlnamereturnc                 F   |                                   |dz   }g }t          | j        t                    r4|d                    | j        j        | j        | 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{}+{}@{}zsubdirectory=#&)validate
isinstanceinfor   formatr
   url	commit_idr   hashappendr   subdirectoryjoin)r   r   requirement	fragmentss       Y/var/www/html/what/lib/python3.11/site-packages/pip/_internal/utils/direct_url_helpers.py%direct_url_as_pep440_direct_referencer   	   s%   ,KI*/7++ 
&z((O1J
 
 	
 
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linklink_is_in_wheel_cachec                    | 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   r1   s
             r   direct_url_from_linkr4   '   sk    { -
0==%0%E%E%&
 &
" " 	= &%%%*II
 #00<<I$##5  
 3
 
 
 	
 
				 
)3
 
 
 	
 N	 	.--$)--D)$'''3
 
 
 	
r   )NF)typingr   pip._internal.models.direct_urlr   r   r   r   pip._internal.models.linkr   pip._internal.utils.urlsr	   pip._internal.vcsr
   strr   r#   boolr4    r   r   <module>r=      s
         T T T T T T T T T T T T * * * * * * 0 0 0 0 0 0 ! ! ! ! ! !i s s    . 	     RW0
 0

0
$SM0
JN0
0
 0
 0
 0
 0
 0
r   