
    4Քh                       S r SSKJr  SSKrSSKrSSKrSSKJr  SSK	J
r
  SSK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S jjr S         SS jjrSS jrS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    )annotationsN)Iterable)	dataclass)AnyClassVar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       W/var/www/auris/envauris/lib/python3.13/site-packages/pip/_internal/models/direct_url.pyr   r      s    r   r   c                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   dexpected_typekeydefault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   c                    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)infosinfos     r   _exactly_one_ofr+   5   sf    #8edTeE8&=
 	
 5zA~&?
 	
 88O 9s
   AAc                 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)kwargskvs      r   _filter_noner1   C   s(    #\\^=^TQqDAD^===s   	++c                  d    \ rS rSr% SrS\S'   S\S'   S\S'   SrS	\S
'   \SS j5       rSS jr	Sr
g)r   H   vcs_infor   namestrvcs	commit_idN
str | Nonerequested_revisionc           	     t    Uc  g U " [        U[        S5      [        U[        S5      [        U[        S5      S9$ )Nr7   r8   r:   )r7   r8   r:   )r%   r6   r#   clsr   s     r   
_from_dictVcsInfo._from_dictP   s<    9ae,#AsK8#As,@A
 	
r   c                T    [        U R                  U R                  U R                  S9$ )N)r7   r:   r8   )r1   r7   r:   r8   selfs    r   _to_dictVcsInfo._to_dictZ   s&    #66nn
 	
r   r   )r   dict[str, Any] | NonereturnzVcsInfo | NonerF   dict[str, Any])r   r   r   r   r5   __annotations__r:   classmethodr>   rC   r   r   r   r   r   r   H   s8    D(	HN%)
)
 

r   r   c                      \ rS rSrSr  S
     SS jjr\SS j5       r\R                  SS j5       r\	SS j5       r
SS jrS	rg)r   b   archive_infoNc                    X l         Xl        g N)hasheshash)rB   rQ   rP   s      r   __init__ArchiveInfo.__init__e   s     	r   c                    U R                   $ rO   )_hashrA   s    r   rQ   ArchiveInfo.hashn   s    zz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   rP   copyrU   )rB   r"   	hash_name
hash_values       r   rQ   rV   r   s    (-C(;%	
 {{"(5++-"kk..0)3I&
  .8	B s   A2 2Bc                T    Uc  g U " [        U[        S5      [        U[        S5      S9$ )NrQ   rP   rQ   rP   )r#   r6   dictr<   s     r   r>   ArchiveInfo._from_dict   s)    9QV,T!T85LMMr   c                >    [        U R                  U R                  S9$ )Nr_   )r1   rQ   rP   rA   s    r   rC   ArchiveInfo._to_dict   s    4;;??r   )rU   rQ   rP   )NN)rQ   r9   rP   zdict[str, str] | NonerF   None)rF   r9   )r"   r9   rF   rd   )r   rE   rF   zArchiveInfo | NonerG   )r   r   r   r   r5   rR   propertyrQ   setterrJ   r>   rC   r   r   r   r   r   r   b   sx    D  (, & 
	   
[[ " N N
@r   r   c                  P    \ rS rSr% SrS\S'   SrS\S'   \SS j5       rSS	 jr	S
r
g)r      dir_infor   r5   Fbooleditablec           	     2    Uc  g U " [        U[        SSS9S9$ )Nrk   F)r!   rk   )r%   rj   r<   s     r   r>   DirInfo._from_dict   s     9M!T:uMNNr   c                :    [        U R                  =(       d    S S9$ )Nrm   )r1   rk   rA   s    r   rC   DirInfo._to_dict   s    T]]%:d;;r   r   N)r   rE   rF   zDirInfo | NonerG   )r   r   r   r   r5   rI   rk   rJ   r>   rC   r   r   r   r   r   r      s/    D(HdO O
<r   r   c                      \ rS rSr% S\S'   S\S'   SrS\S'   SS	 jr\SS
 j5       rSS jr	\
SS j5       rSS jr\
SS j5       rSS jrSS jrSrg)r
      r6   urlInfoTyper*   Nr9   subdirectoryc                    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)rY   r   r*   r   r7   
ENV_VAR_REmatch)rB   netloc	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urlsplitrs   r~   r{   
urlunsplitschemepathqueryfragment)rB   purlr{   surls       r   redacted_urlDirectUrl.redacted_url   sg     ||$$TXX...t{{;||&&[[&))TZZG
 r   c                B    U R                  U R                  5       5        g rO   )	from_dictto_dictrA   s    r   validateDirectUrl.validate   s    t||~&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$ )Nrs   ru   rM   ri   r4   )rs   ru   r*   )
r
   r%   r6   r#   r+   r   r>   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)rs   ru   )r1   r   ru   r*   rC   r5   )rB   ress     r   r   DirectUrl.to_dict   sB    !!**
 #ii002IINN
r   c                L    U R                  [        R                  " U5      5      $ rO   )r   jsonloads)r=   ss     r   	from_jsonDirectUrl.from_json   s    }}TZZ]++r   c                H    [         R                  " U R                  5       SS9$ )NT)	sort_keys)r   dumpsr   rA   s    r   to_jsonDirectUrl.to_json   s    zz$,,.D99r   c                p    [        U R                  [        5      =(       a    U R                  R                  $ rO   )r   r*   r   rk   rA   s    r   is_local_editableDirectUrl.is_local_editable   s"    $))W-D$))2D2DDr   r   )r{   r6   rF   r6   )rF   r6   )rF   rd   )r   rH   rF   r
   rG   )r   r6   rF   r
   )rF   rj   )r   r   r   r   rI   ru   r~   re   r   r   rJ   r   r   r   r   r   r   r   r   r   r
   r
      sl    	H
N#L*## 
 
' 
 
 , ,:Er   r
   rO   )
r   rH   r   type[T]r    r6   r!   T | NonerF   r   )
r   rH   r   r   r    r6   r!   r   rF   r   )r)   zIterable[InfoType | None]rF   rt   )r.   r   rF   rH   ) __doc__
__future__r   r   reurllib.parser   collections.abcr   dataclassesr   typingr   r   r   r	   __all__r   DIRECT_URL_METADATA_NAMEcompilery   	Exceptionr   r#   r%   r+   r1   r   r   r   rt   r
   r   r   r   <module>r      s6    "  	  $ ! 0 0 CL, ZZIJ
	y 	
 NR&-47BJ NR&-47BJ>
 
 
 
2)@ )@X < < < gw./ AE AE AEr   