+
    <j                     j   R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	H
t
HtHtHtHtHt . ROt]! R	4      tR
t]P&                  ! R4      t ! R R]4      tRR R lltRR R lltR R ltR R lt] ! R R4      4       t ! R R4      t] ! R R4      4       t]]]]3,          t] ! R R4      4       tR# )zPEP 610N)	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                       ] tR t^tRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r       T/opt/headortail/venv/lib/python3.14/site-packages/pip/_internal/models/direct_url.pyr   r      s    r   c                    V ^8  d   QhR\         \        \        3,          R\        \        ,          R\        R\
        \        ,          R\
        \        ,          /#    dexpected_typekeydefaultreturnr   strr   r   r   r   )formats   "r   __annotate__r%      sH      CH~&*1g47BJ1+a[r   c                r    W 9  d   V# W,          p\        WA4      '       g   \        V: RV RV R24      hV# )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          
          V ^8  d   QhR\         \        \        3,          R\        \        ,          R\        R\
        \        ,          R\        /# r   r"   )r$   s   "r   r%   r%   )   sD      CH~&*1g47BJ1+r   c                 B    \        WW#4      pVf   \        V R24      hV# )Nz must have a value)r+   r   r)   s   &&&& r   _get_requiredr.   )   s-     30E}&#.@'ABBLr   c                L    V ^8  d   QhR\         \        R,          ,          RR/# )r   infosInfoTyper!   )r   r   )r$   s   "r   r%   r%   2   s$      8HZ$89 j r   c                     V  Uu. uF
  qf   K  VNK  	  p pV '       g   \        R4      h\        V 4      ^8  d   \        R4      hV ^ ,          f   Q hV ^ ,          # u upi )Nz/missing one of archive_info, dir_info, vcs_infoz1more than one of archive_info, dir_info, vcs_info)r   len)r0   infos   & r   _exactly_one_ofr5   2   sh    #8edTTeE8&=
 	
 5zA~&?
 	
 88O 9s
   AAc                R    V ^8  d   QhR\         R\        \        \         3,          /# )r   kwargsr!   )r   r   r#   )r$   s   "r   r%   r%   @   s"     > >3 >4S> >r   c                 b    V P                  4        UUu/ uF  w  rVf   K  WbK  	  upp# u uppi )z Make dict excluding None values.)items)r7   kvs   ,  r   _filter_noner<   @   s(    #\\^=^TQqDAD^===s   ++c                   b   a  ] tR t^Et o RtRt]V 3R lR l4       tV 3R lR ltV 3R lt	Rt
V tR# )	r   vcs_infoNc                Z   < V ^8  d   QhRS[ S[S[S[3,          ,          RS[ R,          /# )r   r   r!   r   r   r   r#   r   )r$   __classdict__s   "r   r%   VcsInfo.__annotate__N   s-     
 
8DcN3 
8K 
r   c           	     ~    Vf   R # V ! \        V\        R4      \        V\        R4      \        V\        R4      R7      # )Nvcs	commit_idrequested_revision)rD   rE   rF   )r.   r#   r+   clsr   s   &&r   
_from_dictVcsInfo._from_dictM   s<    9ae,#AsK8#As,@A
 	
r   c                6   < V ^8  d   QhRS[ S[S[3,          /# r   r!   r   r#   r   )r$   rA   s   "r   r%   rB   W   s     
 
$sCx. 
r   c                Z    \        V P                  V P                  V P                  R 7      # ))rD   rF   rE   )r<   rD   rF   rE   selfs   &r   _to_dictVcsInfo._to_dictW   s&    #66nn
 	
r   c                Z   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[S[,          ;R&   # )r   namerD   rE   rF   )r   r#   r   )r$   rA   s   "r   r%   rB   E   s9     
  
H	 
 N  !, r   r   )r   r   r   r   rT   rF   classmethodrI   rQ   __annotate_func__r   __classdictcell__rA   s   @r   r   r   E   s5     D )-
 

 
%  r   c                      a  ] tR t^_t o RtRV 3R lR llt]V 3R lR l4       t]P                  V 3R lR l4       t]	V 3R	 lR
 l4       t
V 3R lR ltRtV tR# )r   archive_infoNc                `   < V ^8  d   QhRS[ S[,          RS[ S[S[S[3,          ,          RR/# )r   hashhashesr!   N)r   r#   r   )r$   rA   s   "r   r%   ArchiveInfo.__annotate__b   s:      sm c3h( 
	r   c                    W n         Wn        R # N)r]   r\   )rP   r\   r]   s   &&&r   __init__ArchiveInfo.__init__b   s     	r   c                0   < V ^8  d   QhRS[ S[,          /# rL   r   r#   )r$   rA   s   "r   r%   r^   l   s      hsm r   c                    V P                   # r`   )_hashrO   s   &r   r\   ArchiveInfo.hashk   s    zzr   c                4   < V ^8  d   QhRS[ S[,          RR/# )r   r*   r!   Nrd   )r$   rA   s   "r   r%   r^   p   s      (3- D r   c                (   Vej    VP                  R^4      w  r#T P                  f
   Y#/T n        M=Y P                  9  d.   T P                  P	                  4       T n        Y0P                  T&   Wn        R #   \         d    \        RT: 24      hi ; i)N=z"invalid archive_info.hash format: )split
ValueErrorr   r]   copyrf   )rP   r*   	hash_name
hash_values   &&  r   r\   rg   o   s    (-C(;%	
 {{"(5++-"kk..0)3I&
  .8	B s   A6 6Bc                Z   < V ^8  d   QhRS[ S[S[S[3,          ,          RS[ R,          /# )r   r   r!   r   r@   )r$   rA   s   "r   r%   r^      s1     N N8DcN3 N8O Nr   c                ^    Vf   R # V ! \        V\        R4      \        V\        R4      R7      # )Nr\   r]   r\   r]   )r+   r#   dictrG   s   &&r   rI   ArchiveInfo._from_dict   s)    9QV,T!T85LMMr   c                6   < V ^8  d   QhRS[ S[S[3,          /# rL   rM   )r$   rA   s   "r   r%   r^      s     @ @$sCx. @r   c                D    \        V P                  V P                  R 7      # )rr   )r<   r\   r]   rO   s   &r   rQ   ArchiveInfo._to_dict   s    4;;??r   )rf   r\   r]   )NN)r   r   r   r   rT   ra   propertyr\   setterrU   rI   rQ   r   rW   rX   s   @r   r   r   _   sb     D    
[[ " N N
@ @r   c                   b   a  ] tR t^t o RtRt]V 3R lR l4       tV 3R lR ltV 3R lt	Rt
V tR	# )
r   dir_infoFc                Z   < V ^8  d   QhRS[ S[S[S[3,          ,          RS[ R,          /# )r   r   r!   r   r@   )r$   rA   s   "r   r%   DirInfo.__annotate__   s1     O O8DcN3 O8K Or   c           	     B    Vf   R # V ! \        V\        RRR7      R7      # )NeditableF)r    r   )r.   boolrG   s   &&r   rI   DirInfo._from_dict   s     9M!T:uMNNr   c                6   < V ^8  d   QhRS[ S[S[3,          /# rL   rM   )r$   rA   s   "r   r%   r}      s     < <$sCx. <r   c                B    \        V P                  ;'       g    R R7      # )Nr   )r<   r   rO   s   &r   rQ   DirInfo._to_dict   s    T]]%:%:d;;r   c                2   < V ^8  d   Qh/ S[ ;R&   S[;R&   # )r   rT   r   )r   r   )r$   rA   s   "r   r%   r}      s     
  	 r   r   N)r   r   r   r   rT   r   rU   rI   rQ   rV   r   rW   rX   s   @r   r   r      s4     DHO O
< <  r   c                      a  ] tR t^t o RtV 3R lR lt]V 3R lR l4       tV 3R lR lt]	V 3R lR	 l4       t
V 3R
 lR lt]	V 3R lR l4       tV 3R lR ltV 3R lR ltV 3R ltRtV tR# )r   Nc                &   < V ^8  d   QhRS[ RS[ /# )r   netlocr!   r#   )r$   rA   s   "r   r%   DirectUrl.__annotate__   s     # #s #s #r   c                   R V9  d   V# VP                  R ^4      w  r#\        V P                  \        4      '       d%   V P                  P                  R8X  d
   VR8X  d   V# \
        P                  V4      '       d   V# V# )@git)rk   r(   r4   r   rD   
ENV_VAR_REmatch)rP   r   	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                    < V ^8  d   QhRS[ /# rL   r   )r$   rA   s   "r   r%   r      s     
 
c 
r   c                $   \         P                  P                  V P                  4      pV P	                  VP
                  4      p\         P                  P                  VP                  W!P                  VP                  VP                  34      pV# )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urlspliturlr   r   
urlunsplitschemepathqueryfragment)rP   purlr   surls   &   r   redacted_urlDirectUrl.redacted_url   sg     ||$$TXX...t{{;||&&[[&))TZZG
 r   c                   < V ^8  d   QhRR/# )r   r!   Nr   )r$   rA   s   "r   r%   r      s     ' '$ 'r   c                D    V P                  V P                  4       4       R # r`   )	from_dictto_dictrO   s   &r   validateDirectUrl.validate   s    t||~&r   c                :   < V ^8  d   QhRS[ S[S[3,          RR/# )r   r   r!   r   rM   )r$   rA   s   "r   r%   r      s#     
 
$sCx. 
[ 
r   c                >   \        \        V\        R 4      \        V\        R4      \	        \
        P                  \        V\        R4      4      \        P                  \        V\        R4      4      \        P                  \        V\        R4      4      .4      R7      # )r   subdirectoryrZ   r{   r>   )r   r   r4   )
r   r.   r#   r+   r5   r   rI   rs   r   r   rG   s   &&r   r   DirectUrl.from_dict   sy    ae,an5 **44+HI&&tAtZ'@A&&tAtZ'@A

 
	
r   c                6   < V ^8  d   QhRS[ S[S[3,          /# rL   rM   )r$   rA   s   "r   r%   r      s      c3h r   c                    \        V P                  V P                  R 7      pV P                  P	                  4       WP                  P
                  &   V# ))r   r   )r<   r   r   r4   rQ   rT   )rP   ress   & r   r   DirectUrl.to_dict   sB    !!**
 #ii002IINN
r   c                $   < V ^8  d   QhRS[ RR/# )r   sr!   r   r   )r$   rA   s   "r   r%   r      s     , ,# ,+ ,r   c                L    V P                  \        P                  ! V4      4      # r`   )r   jsonloads)rH   r   s   &&r   	from_jsonDirectUrl.from_json   s    }}TZZ]++r   c                    < V ^8  d   QhRS[ /# rL   r   )r$   rA   s   "r   r%   r      s     : : :r   c                N    \         P                  ! V P                  4       R R7      # )T)	sort_keys)r   dumpsr   rO   s   &r   to_jsonDirectUrl.to_json   s    zz$,,.D99r   c                    < V ^8  d   QhRS[ /# rL   )r   )r$   rA   s   "r   r%   r      s     E E4 Er   c                r    \        V P                  \        4      ;'       d    V P                  P                  # r`   )r(   r4   r   r   rO   s   &r   is_local_editableDirectUrl.is_local_editable   s%    $))W-DD$))2D2DDr   c                N   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[S[ ,          ;R&   # )r   r   r4   r   )r#   r1   r   )r$   rA   s   "r   r%   r      s,     	H  N  3-&	 r   r   )r   r   r   r   r   r   rx   r   r   rU   r   r   r   r   r   rV   r   rW   rX   s   @r   r   r      s      #'L# # 
 
' ' 
 
  , ,: :E EC  r   )r   r   r   r   r   r`   ) __doc__r   reurllib.parser   dataclassesr   typingr   r   r   r   r   r   r	   r
   __all__r   DIRECT_URL_METADATA_NAMEcompiler   	Exceptionr   r+   r.   r5   r<   r   r   r   r1   r   r   r   r   <module>r      s      	  ! P P P CL, ZZIJ
	y 	>
 
 
 
2)@ )@X < < < gw./ AE AE AEr   