
    i#                    v    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y)    )annotations)ArchiveInfo	DirectUrlDirInfoVcsInfo)Link)path_to_url)vcsc                   | j                          |dz   }g }| j                  r@|| j                  j                   d| j                   d| j                  j                   z  }n| j
                  ru|| j                  z  }| j
                  j                  rmt        t        | j
                  j                  j                                     \  }}|j                  | d|        n| j                  sJ || j                  z  }| j                  r|j                  d| j                  z          |r|ddj                  |      z   z  }|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)
direct_urlnamerequirement	fragmentshash_algorithm
hash_values         Y/root/searxng-venv/lib/python3.12/site-packages/pip/_internal/utils/direct_url_helpers.py%direct_url_as_pep440_direct_referencer%   	   s5   ,KI""&&'q(8
##--.0	
 
	 	 z~~%"")))-Z,,3399;<*&NJ /q=>""""z~~%:+B+BBCsSXXi000    c                B    t        t        |       t        d            S )NT)editable)r   r   )r   r	   r   )
source_dirs    r$   direct_url_for_editabler*   $   s    
#$' r&   Nc                l   | j                   rt        j                  | j                        }|sJ |j	                  | j
                        \  }}}|r|sJ |}n|sJ |j                  |      }t        |t        |j                  ||      | j                        S | j                         r*t        | j
                  t               | j                        S | j                  r'| j                  sJ | j                  | j                  i}nd }t        | j
                  t        |      | j                        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   )	linkr)   link_is_in_wheel_cachevcs_backendr   r,   _r   r   s	            r$   direct_url_from_linkr;   +   s.    {{00={%0%E%E%%&
" " &%%*I
 :#00<I$$##5
 33
 	
 
			))Y33
 	
 >>999nndii0FF))$F333
 	
r&   )r   r   r   strreturnr<   )r)   r<   r=   r   )NF)r7   r   r)   z
str | Noner8   boolr=   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$   <module>rE      sM    " T T * 0 !6 OT1

1
&1
GK1
1
r&   