
    @[h                        d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZ g dZ ed          ZdZ ej        d          Z G d d	e          Z	 dd
eeef         de
e         dede	e         de	e         f
dZ	 dd
eeef         de
e         dede	e         def
dZdee	d                  ddfdZdedeeef         fdZ G d d          Z G d d          Z G d d          Zeeeef         Z G d d          ZdS )z	 PEP 610     N)AnyDictIterableOptionalTypeTypeVarUnion)	DirectUrlDirectUrlValidationErrorDirInfoArchiveInfoVcsInfoTzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$c                       e Zd ZdS )r   N)__name__
__module____qualname__     n/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/pip/_internal/models/direct_url.pyr   r      s        Dr   r   dexpected_typekeydefaultreturnc                     || vr|S | |         }t          ||          s$t          d                    |||                    |S )z3Get value from dictionary and verify expected type.z-{!r} has unexpected type for {} (expected {}))
isinstancer   formatr   r   r   r   values        r   _getr!      s`     !||cFEe]++ 
&;BBsM 
 
 	

 Lr   c                 R    t          | |||          }|t          | d          |S )Nz must have a value)r!   r   r   s        r   _get_requiredr#   )   s8     M300E}&#'A'A'ABBBLr   infosInfoTypec                     d | D             } | st          d          t          |           dk    rt          d          | d         J | d         S )Nc                     g | ]}||S Nr   ).0infos     r   
<listcomp>z#_exactly_one_of.<locals>.<listcomp>3   s    888dt'7T'7'7'7r   z/missing one of archive_info, dir_info, vcs_info   z1more than one of archive_info, dir_info, vcs_infor   )r   len)r$   s    r   _exactly_one_ofr.   2   ss    88e888E 
&=
 
 	
 5zzA~~&?
 
 	
 88Or   kwargsc                  >    d |                                  D             S )z Make dict excluding None values.c                     i | ]
\  }}|||S r(   r   )r)   kvs      r   
<dictcomp>z _filter_none.<locals>.<dictcomp>B   s    ===TQq}Aq}}}r   )items)r/   s    r   _filter_noner6   @   s    ==V\\^^====r   c            	           e Zd ZdZ	 ddededee         ddfdZedeeee	f                  ded          fd	            Z
deee	f         fd
ZdS )r   vcs_infoNvcs	commit_idrequested_revisionr   c                 0    || _         || _        || _        d S r(   r9   r;   r:   )selfr9   r:   r;   s       r   __init__zVcsInfo.__init__H   s     "4"r   r   c           	          |d S  | t          |t          d          t          |t          d          t          |t          d                    S )Nr9   r:   r;   )r9   r:   r;   )r#   strr!   clsr   s     r   
_from_dictzVcsInfo._from_dictR   sS    94sae,,#AsK88#As,@AA
 
 
 	
r   c                 D    t          | j        | j        | j                  S )Nr=   )r6   r9   r;   r:   r>   s    r   _to_dictzVcsInfo._to_dict\   s)    #6n
 
 
 	
r   r(   )r   r   r   namerA   r   r?   classmethodr   r   rD   rG   r   r   r   r   r   E   s        D -1	# ## # %SM	#
 
# # # # 
8DcN3 
8K 
 
 
 [

$sCx. 
 
 
 
 
 
r   r   c                       e Zd ZdZ	 d	dee         ddfdZedeeee	f                  ded          fd            Z
deee	f         fdZdS )
r   archive_infoNhashr   c                     || _         d S r(   rL   )r>   rL   s     r   r?   zArchiveInfo.__init__g   s     			r   r   c                 J    |d S  | t          |t          d                    S )NrL   rN   )r!   rA   rB   s     r   rD   zArchiveInfo._from_dictm   s+    94sQV,,----r   c                 ,    t          | j                  S )NrN   )r6   rL   rF   s    r   rG   zArchiveInfo._to_dicts   s    ++++r   r(   )r   r   r   rH   r   rA   r?   rI   r   r   rD   rG   r   r   r   r   r   d   s        D # sm 
    .8DcN3 .8O . . . [.
,$sCx. , , , , , ,r   r   c                       e Zd ZdZ	 d
deddfdZedeee	e
f                  ded          fd            Zdee	e
f         fd	ZdS )r   dir_infoFeditabler   Nc                     || _         d S r(   rS   )r>   rS   s     r   r?   zDirInfo.__init__z   s     !r   r   c                 N    |d S  | t          |t          dd                    S )NrS   F)r   rU   )r#   boolrB   s     r   rD   zDirInfo._from_dict   s0    94sM!T:uMMMNNNNr   c                 0    t          | j        pd           S )NrU   )r6   rS   rF   s    r   rG   zDirInfo._to_dict   s    T]%:d;;;;r   )F)r   r   r   rH   rW   r?   rI   r   r   rA   r   rD   rG   r   r   r   r   r   w   s        D ! !! 
! ! ! ! O8DcN3 O8K O O O [O
<$sCx. < < < < < <r   r   c            	           e Zd Z	 ddededee         ddfdZdedefdZedefd	            Z	dd
Z
edeeef         dd fd            Zdeeef         fdZededd fd            ZdefdZdefdZdS )r
   Nurlr*   subdirectoryr   c                 0    || _         || _        || _        d S r(   )rZ   r*   r[   )r>   rZ   r*   r[   s       r   r?   zDirectUrl.__init__   s      	(r   netlocc                     d|vr|S |                     dd          \  }}t          | j        t                    r| j        j        dk    r|dk    r|S t
                              |          r|S |S )N@r,   git)splitr   r*   r   r9   
ENV_VAR_REmatch)r>   r]   	user_passnetloc_no_user_passs       r   _remove_auth_from_netlocz"DirectUrl._remove_auth_from_netloc   s    fM)/c1)=)=&	&ty'**		&&U""MI&& 	M""r   c                     t           j                            | j                  }|                     |j                  }t           j                            |j        ||j        |j	        |j
        f          }|S )zurl with user:password part removed unless it is formed with
        environment variables as specified in PEP 610, or it is ``git``
        in the case of a git URL.
        )urllibparseurlsplitrZ   rf   r]   
urlunsplitschemepathqueryfragment)r>   purlr]   surls       r   redacted_urlzDirectUrl.redacted_url   sd     |$$TX....t{;;|&&[&$)TZG
 
 r   c                 T    |                      |                                            d S r(   )	from_dictto_dictrF   s    r   validatezDirectUrl.validate   s"    t||~~&&&&&r   r   c                    t          t          |t          d          t          |t          d          t	          t
                              t          |t          d                    t                              t          |t          d                    t                              t          |t          d                    g                    S )NrZ   r[   rK   rR   r8   )rZ   r[   r*   )
r
   r#   rA   r!   r.   r   rD   dictr   r   rB   s     r   rt   zDirectUrl.from_dict   s    ae,,an55 **44+H+HII&&tAtZ'@'@AA&&tAtZ'@'@AA 

 

 

 
	
r   c                     t          | j        | j                  }| j                                        || j        j        <   |S )N)rZ   r[   )r6   rr   r[   r*   rG   rH   )r>   ress     r   ru   zDirectUrl.to_dict   sE    !*
 
 
 #i0022DIN
r   sc                 P    |                      t          j        |                    S r(   )rt   jsonloads)rC   r{   s     r   	from_jsonzDirectUrl.from_json   s    }}TZ]]+++r   c                 R    t          j        |                                 d          S )NT)	sort_keys)r}   dumpsru   rF   s    r   to_jsonzDirectUrl.to_json   s    z$,,..D9999r   c                 N    t          | j        t                    o| j        j        S r(   )r   r*   r   rS   rF   s    r   is_local_editablezDirectUrl.is_local_editable   s    $)W--D$)2DDr   r(   )r   N)r   r   r   rA   r%   r   r?   rf   propertyrr   rv   rI   r   r   rt   ru   r   r   rW   r   r   r   r   r
   r
      s}       
 '+	) )) ) sm	)
 
) ) ) )#s #s # # # # 
c 
 
 
 X
' ' ' ' 
$sCx. 
[ 
 
 
 [
c3h     ,# ,+ , , , [,: : : : :E4 E E E E E Er   r
   r(   )__doc__r}   reurllib.parserh   typingr   r   r   r   r   r   r	   __all__r   DIRECT_URL_METADATA_NAMEcompilerb   	Exceptionr   rA   r!   r#   r.   r6   r   r   r   r%   r
   r   r   r   <module>r      s     				     F F F F F F F F F F F F F F F F F F   GCLL, RZIJJ
	 	 	 	 	y 	 	 	
 QU CH~&*1g47BJ1+a[   " QU CH~&*1g47BJ1+   8HZ$89 j    >3 >4S> > > > >

 
 
 
 
 
 
 
>, , , , , , , ,&< < < < < < < <& gw./GE GE GE GE GE GE GE GE GE GEr   