
    q"h                        S r SSKrSSKrSSKrSSKJr  SSKJrJ	r	J
r
JrJrJrJrJr  / SQr\" S5      rSr\R&                  " S5      r " S	 S
\5      r SS\
\\4   S\\   S\S\\   S\\   4
S jjr SS\
\\4   S\\   S\S\\   S\4
S jjrS\\S      SS4S jrS\S\
\\4   4S jr\ " S S5      5       r " S S5      r\ " S S5      5       r\\\\4   r\ " S S5      5       r g) zPEP 610    N)	dataclass)AnyClassVarDictIterableOptionalTypeTypeVarUnion)	DirectUrlDirectUrlValidationErrorDirInfoArchiveInfoVcsInfoTzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$c                       \ rS rSrSrg)r       N)__name__
__module____qualname____firstlineno____static_attributes__r       Q/var/www/html/env/lib/python3.13/site-packages/pip/_internal/models/direct_url.pyr   r      s    r   r   dexpected_typekeydefaultreturnc                 f    X ;  a  U$ X   n[        XA5      (       d  [        U< SU SU S35      eU$ )z3Get value from dictionary and verify expected type.z has unexpected type for z (expected ))
isinstancer   r   r   r   r   values        r   _getr&      sK     |FEe++&i0[qQ
 	
 Lr   c                 @    [        XX#5      nUc  [        U S35      eU$ )Nz must have a value)r&   r   r$   s        r   _get_requiredr(   )   s-     30E}&#.@'ABBLr   infosInfoTypec                     U  Vs/ s H	  oc  M  UPM     n nU (       d  [        S5      e[        U 5      S:  a  [        S5      eU S   c   eU S   $ s  snf )Nz/missing one of archive_info, dir_info, vcs_info   z1more than one of archive_info, dir_info, vcs_infor   )r   len)r)   infos     r   _exactly_one_ofr/   2   sf    #8edTeE8&=
 	
 5zA~&?
 	
 88O 9s
   AAkwargsc                  b    U R                  5        VVs0 s H  u  pUc  M
  X_M     snn$ s  snnf )z Make dict excluding None values.)items)r0   kvs      r   _filter_noner5   @   s(    #\\^=^TQqDAD^===s   	++c                       \ rS rSr% Sr\\S'   \\S'   \\S'   Sr\	\   \S'   \
S\	\\\4      S	\	S    4S
 j5       rS	\\\4   4S jrSrg)r   E   vcs_infonamevcs	commit_idNrequested_revisionr   r    c           	      t    Uc  g U " [        U[        S5      [        U[        S5      [        U[        S5      S9$ )Nr:   r;   r<   )r:   r;   r<   )r(   strr&   clsr   s     r   
_from_dictVcsInfo._from_dictM   s<    9ae,#AsK8#As,@A
 	
r   c                 T    [        U R                  U R                  U R                  S9$ )N)r:   r<   r;   )r5   r:   r<   r;   selfs    r   _to_dictVcsInfo._to_dictW   s&    #66nn
 	
r   r   )r   r   r   r   r9   r   __annotations__r>   r<   r   classmethodr   r   rA   rF   r   r   r   r   r   r   E   sk    D(	HN(,,
8DcN3 
8K 
 

$sCx. 
r   r   c                       \ rS rSrSr  SS\\   S\\\\4      SS4S jjr\	S\\   4S j5       r
\
R                  S	\\   SS4S
 j5       r
\S\\\\4      S\S    4S j5       rS\\\4   4S jrSrg)r   _   archive_infoNhashhashesr    c                     X l         Xl        g N)rN   rM   )rE   rM   rN   s      r   __init__ArchiveInfo.__init__b   s     	r   c                     U R                   $ rP   )_hashrD   s    r   rM   ArchiveInfo.hashk   s    zzr   r%   c                    Ubg   UR                  SS5      u  p#U R                  c	  X#0U l        O<X R                  ;  a-  U R                  R	                  5       U l        X0R                  U'   Xl        g ! [         a    [        SU< 35      ef = f)N=r,   z"invalid archive_info.hash format: )split
ValueErrorr   rN   copyrT   )rE   r%   	hash_name
hash_values       r   rM   rU   o   s    (-C(;%	
 {{"(5++-"kk..0)3I&
  .8	B s   A2 2Br   c                 T    Uc  g U " [        U[        S5      [        U[        S5      S9$ )NrM   rN   rM   rN   )r&   r>   dictr?   s     r   rA   ArchiveInfo._from_dict   s)    9QV,T!T85LMMr   c                 >    [        U R                  U R                  S9$ )Nr^   )r5   rM   rN   rD   s    r   rF   ArchiveInfo._to_dict   s    4;;??r   )rT   rM   rN   )NN)r   r   r   r   r9   r   r>   r   rQ   propertyrM   setterrI   r   rA   rF   r   r   r   r   r   r   _   s    D #+/sm c3h( 
	 hsm   
[[(3- D  " N8DcN3 N8O N N
@$sCx. @r   r   c                   |    \ rS rSr% Sr\\S'   Sr\\S'   \	S\
\\\4      S\
S    4S j5       rS\\\4   4S	 jrS
rg)r      dir_infor9   Feditabler   r    c           	      2    Uc  g U " [        U[        SSS9S9$ )Nrh   F)r   rh   )r(   boolr?   s     r   rA   DirInfo._from_dict   s     9M!T:uMNNr   c                 :    [        U R                  =(       d    S S9$ )Nrj   )r5   rh   rD   s    r   rF   DirInfo._to_dict   s    T]]%:d;;r   r   N)r   r   r   r   r9   r   rH   rh   rk   rI   r   r   r>   r   rA   rF   r   r   r   r   r   r      s`    D(HdO8DcN3 O8K O O
<$sCx. <r   r   c                       \ rS rSr% \\S'   \\S'   Sr\\   \S'   S\S\4S jr	\
S\4S	 j5       rSS
 jr\S\\\4   SS 4S j5       rS\\\4   4S jr\S\SS 4S j5       rS\4S jrS\4S jrSrg)r      urlr.   Nsubdirectorynetlocr    c                     SU;  a  U$ UR                  SS5      u  p#[        U R                  [        5      (       a"  U R                  R                  S:X  a  US:X  a  U$ [
        R                  U5      (       a  U$ U$ )N@r,   git)rX   r#   r.   r   r:   
ENV_VAR_REmatch)rE   rs   	user_passnetloc_no_user_passs       r   _remove_auth_from_netloc"DirectUrl._remove_auth_from_netloc   sl    fM)/c1)=&	tyy'**		&U"MI&&M""r   c                 $   [         R                  R                  U R                  5      nU R	                  UR
                  5      n[         R                  R                  UR                  X!R                  UR                  UR                  45      nU$ )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urlsplitrq   r{   rs   
urlunsplitschemepathqueryfragment)rE   purlrs   surls       r   redacted_urlDirectUrl.redacted_url   sg     ||$$TXX...t{{;||&&[[&))TZZG
 r   c                 B    U R                  U R                  5       5        g rP   )	from_dictto_dictrD   s    r   validateDirectUrl.validate   s    t||~&r   r   c                 8   [        [        U[        S5      [        U[        S5      [	        [
        R                  [        U[        S5      5      [        R                  [        U[        S5      5      [        R                  [        U[        S5      5      /5      S9$ )Nrq   rr   rL   rg   r8   )rq   rr   r.   )
r   r(   r>   r&   r/   r   rA   r_   r   r   r?   s     r   r   DirectUrl.from_dict   sy    ae,an5 **44+HI&&tAtZ'@A&&tAtZ'@A

 
	
r   c                     [        U R                  U R                  S9nU R                  R	                  5       XR                  R
                  '   U$ )N)rq   rr   )r5   r   rr   r.   rF   r9   )rE   ress     r   r   DirectUrl.to_dict   sB    !!**
 #ii002IINN
r   sc                 L    U R                  [        R                  " U5      5      $ rP   )r   jsonloads)r@   r   s     r   	from_jsonDirectUrl.from_json   s    }}TZZ]++r   c                 H    [         R                  " U R                  5       SS9$ )NT)	sort_keys)r   dumpsr   rD   s    r   to_jsonDirectUrl.to_json   s    zz$,,.D99r   c                 p    [        U R                  [        5      =(       a    U R                  R                  $ rP   )r#   r.   r   rh   rD   s    r   is_local_editableDirectUrl.is_local_editable   s"    $))W-D$))2D2DDr   r   )r    N)r   r   r   r   r>   rH   r*   rr   r   r{   rc   r   r   rI   r   r   r   r   r   r   rk   r   r   r   r   r   r   r      s    	H
N"&L(3-&#s #s # 
c 
 
' 
$sCx. 
[ 
 
c3h  ,# ,+ , ,: :E4 Er   r   rP   )!__doc__r   reurllib.parser~   dataclassesr   typingr   r   r   r   r   r	   r
   r   __all__r   DIRECT_URL_METADATA_NAMEcompilerw   	Exceptionr   r>   r&   r(   r/   r5   r   r   r   r*   r   r   r   r   <module>r      s     	  ! P P P CL, ZZIJ
	y 	
 QUCH~&*1g47BJ1+a[ QUCH~&*1g47BJ1+8HZ$89 j >3 >4S> >
 
 
 
2)@ )@X < < < gw./ AE AE AEr   