ó
    T=Œj¥*  ã                  óz  • 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	J
r
JrJr  \	(       a'  S SKrS SKJr  \R                  S:¼  a  S SKJr  OS SKJr  / SQrS%S	 jr\" S
5      r " S S\5      r\" S\S9rS&S jrS'S jrS(S jr        S)S jr\R6                  " S5      rS*S jrS+S jr " S S\5      r  " S S\ 5      r!\RD                  " SSS9 " S S5      5       r#\RD                  " SSS9 " S S 5      5       r$\RD                  " SSS9 " S! S"5      5       r%\RD                  " SSS9 " S# S$5      5       r&g),é    )ÚannotationsN)ÚMapping)ÚTYPE_CHECKINGÚAnyÚProtocolÚTypeVar)Ú
Collection)é   é   )ÚSelf)ÚArchiveInfoÚDirInfoÚ	DirectUrlÚDirectUrlValidationErrorÚVcsInfoc                 ó   • [         $ ©N)Ú__all__© ó    Úd/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_vendor/packaging/direct_url.pyÚ__dir__r      s   € Ü€Nr   Ú_Tc                  ó(   • \ rS rSr\SS j5       rSrg)Ú_FromMappingProtocolé"   c                ó   • g r   r   ©ÚclsÚds     r   Ú
_from_dictÚ_FromMappingProtocol._from_dict#   s   € Ø7:r   r   N©r    úMapping[str, Any]Úreturnr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úclassmethodr!   Ú__static_attributes__r   r   r   r   r   "   s   † ØÛ:ó Û:r   r   Ú_FromMappingProtocolT)Úboundc                óF   • U  VVs0 s H  u  pUc  M
  X_M     snn$ s  snnf r   r   )ÚdataÚkeyÚvalues      r   Ú_json_dict_factoryr2   *   s"   € Ù)-ÔCª™:˜3°‹JˆCŠJ©ÒCÐCùÓCs   †	“c                ó¬   • U R                  U5      =nc  g[        X15      (       d.  [        S[        U5      R                   SUR                   S3US9eU$ )zBGet a value from the dictionary and verify it's the expected type.NzUnexpected type z (expected Ú)©Úcontext)ÚgetÚ
isinstancer   Útyper&   ©r    Úexpected_typer0   r1   s       r   Ú_getr<   .   sd   € à—‘�s“ÐˆÑ$ØÜ�e×+Ñ+Ü&Øœt E›{×3Ñ3Ð4ð 5Ø&×/Ñ/Ð0°ð3àñ
ð 	
ð
 €Lr   c                ó:   • [        XU5      =nc  [        U5      eU$ )zKGet a required value from the dictionary and verify it's the expected type.)r<   Ú_DirectUrlRequiredKeyErrorr:   s       r   Ú_get_requiredr?   ;   s$   € ä�a¨Ó,Ð,ˆÑ5Ü(¨Ó-Ð-Ø€Lr   c                óˆ   • [        U [        U5      =nc  g UR                  U5      $ ! [         a  n[	        XBS9UeSnAff = f)zIGet a dictionary value from the dictionary and convert it to a dataclass.Nr5   )r<   r   r!   Ú	Exceptionr   )r    Útarget_typer0   r1   Úes        r   Ú_get_objectrD   B   sN   € ô �aœ #Ó&Ð&ˆÑ/Øð>Ø×%Ñ% eÓ,Ð,øÜó >Ü& qÑ6¸AÐ=ûð>ús   —( ¨
A²
<¼Az.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$c                ó„   • SU ;  a  U $ U R                  SS5      u  p#X!;   a  U $ [        R                  U5      (       a  U $ U$ )NÚ@é   )ÚsplitÚ _PEP610_USER_PASS_ENV_VARS_REGEXÚmatch)ÚnetlocÚsafe_user_passwordsÚ	user_passÚnetloc_no_user_passs       r   Ú_strip_auth_from_netlocrO   S   sI   € Ø
�&ÓØˆØ%+§\¡\°#°qÓ%9Ñ"€IØÓ'ØˆÜ'×-Ñ-¨i×8Ñ8ØˆØÐr   c                ó  • [         R                  R                  U 5      n[        UR                  U5      n[         R                  R                  UR                  UUR                  UR                  UR                  45      $ )z™url with user:password part removed unless it is formed with
environment variables as specified in PEP 610, or it is a safe user:password
such as `git`.
)
ÚurllibÚparseÚurlsplitrO   rK   Ú
urlunsplitÚschemeÚpathÚqueryÚfragment)ÚurlrL   Ú
parsed_urlrK   s       r   Ú
_strip_urlr[   ^   sl   € ô
 —‘×&Ñ& sÓ+€JÜ$ Z×%6Ñ%6Ð8KÓL€FÜ�<‰<×"Ñ"à×ÑØØ�O‰OØ×ÑØ×Ñð	
óð r   c                  óX   • \ rS rSr% SrSrS\S'   S\S'   SS.     SS	 jjrSS
 jrSr	g)r   ép   z2Raised when when input data is not spec-compliant.Nú
str | Noner6   ÚstrÚmessager5   c               ó   • [        U[        5      (       aS  UR                  (       a*  U(       a  U SUR                   3OUR                  U l        OX l        UR                  U l        g X l        [	        U5      U l        g )NÚ.)r8   r   r6   r`   r_   )ÚselfÚcauser6   s      r   Ú__init__Ú!DirectUrlValidationError.__init__v   s\   € ô �eÔ5×6Ñ6Ø�}�}æ4;�w�i˜q §¡ Ñ0ÀÇÁð •ð  '”Ø Ÿ=™=ˆD�Là"ŒLÜ˜u›:ˆD�Lr   c                ót   • U R                   (       a  U R                   SU R                   < 3$ U R                  $ )Nz in ©r6   r`   ©rc   s    r   Ú__str__Ú DirectUrlValidationError.__str__ˆ   s-   € Ø�<�<Ø—l‘l�^ 4¨¯©Ñ'7Ð8Ð8Ø�|‰|Ðr   rh   )rd   zstr | Exceptionr6   r^   r%   ÚNone)r%   r_   )
r&   r'   r(   r)   Ú__doc__r6   Ú__annotations__re   rj   r+   r   r   r   r   r   p   s?   ‡ Ù<à€GˆZÓØƒLð #ñ	&àð&ð ð	&ð
 
õ&÷$r   r   c                  ó,   ^ • \ rS rSrSU 4S jjrSrU =r$ )r>   éŽ   c                ó"   >• [         TU ]  SUS9  g )NzMissing required valuer5   )Úsuperre   )rc   r0   Ú	__class__s     €r   re   Ú#_DirectUrlRequiredKeyError.__init__�   s   ø€ Ü‰ÑÐ1¸3ÐÒ?r   r   )r0   r_   r%   rl   )r&   r'   r(   r)   re   r+   Ú__classcell__)rs   s   @r   r>   r>   Ž   s   ø† ÷@õ @r   r>   TF)ÚfrozenÚinitc                  ól   • \ rS rSr% S\S'   S\S'   SrS\S'   SS.       SS	 jjr\SS
 j5       rSr	g)r   é“   r_   ÚvcsÚ	commit_idNr^   Úrequested_revision)r|   c               óŽ   • [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        g )Nrz   r{   r|   ©ÚobjectÚ__setattr__)rc   rz   r{   r|   s       r   re   ÚVcsInfo.__init__™   s<   € ô 	×Ñ˜4 ¨Ô,Ü×Ñ˜4 ¨iÔ8Ü×Ñ˜4Ð!5Ð7IÕJr   c           	     ól   • U " [        U[        S5      [        U[        S5      [        U[        S5      S9$ )Nrz   r|   r{   )rz   r|   r{   )r?   r_   r<   r   s     r   r!   ÚVcsInfo._from_dict¤   s6   € ñ Ü˜a¤ eÓ,Ü# A¤sÐ,@ÓAÜ# A¤s¨KÓ8ñ
ð 	
r   r   )rz   r_   r{   r_   r|   r^   r%   rl   r#   )
r&   r'   r(   r)   rn   r|   re   r*   r!   r+   r   r   r   r   r   “   sb   ‡ à	ƒHØƒNØ%)Ð˜
Ó)ð *.ñ	Kð ð	Kð ð		Kð
 'ð	Kð 
õ	Kð ó
ó ó
r   r   c                  óP   • \ rS rSr% SrS\S'   SS.   S	S jjr\S
S j5       rSr	g)r   é®   NúMapping[str, str] | NoneÚhashes©r‡   c               ó2   • [         R                  U SU5        g )Nr‡   r~   )rc   r‡   s     r   re   ÚArchiveInfo.__init__²   s   € ô
 	×Ñ˜4 ¨6Õ2r   c                óh  • [        U[        S5      nUb/  [        S UR                  5        5       5      (       d
  [	        SSS9e[        U[
        S5      nUbV  SU;  a
  [	        SSS9eUR                  SS5      u  pEUc  XE0nO+XB;  a  [	        S	U< S
3SS9eX$   U:w  a  [	        S	U< S3SS9eU " US9$ )Nr‡   c              3  óB   #   • U  H  n[        U[        5      v •  M     g 7fr   )r8   r_   )Ú.0Úhs     r   Ú	<genexpr>Ú)ArchiveInfo._from_dict.<locals>.<genexpr>¼   s   é € Ð)VÂoÀ¬*°Q¼×*<Ð*<Âoùs   ‚zHash values must be stringsr5   ÚhashÚ=z3Invalid hash format (expected '<algorithm>=<hash>')rG   z
Algorithm z2 used in hash field is not present in hashes fieldz7 used in hash field has different value in hashes fieldrˆ   )r<   r   ÚallÚvaluesr   r_   rH   )r   r    r‡   Úlegacy_hashÚhash_algorithmÚ
hash_values         r   r!   ÚArchiveInfo._from_dict¹   sù   € ä�aœ (Ó+ˆØÑ¤cÑ)VÀfÇmÁmÄoÓ)V×&VÑ&VÜ*Ø-°xñð ô ˜1œc 6Ó*ˆØÑ"Ø˜+Ó%Ü.ØIØ"ñð ð *5×):Ñ):¸3ÀÓ)BÑ&ˆNØ‰~à(Ð5‘ð "Ó/Ü2Ø$ ^Ñ$6ð 79ð :à (ñð ð
 Ñ)¨ZÓ7Ü2Ø$ ^Ñ$6ð 7>ð ?à &ñð ñ
 ˜&Ñ!Ð!r   r   )r‡   r†   r%   rl   r#   )
r&   r'   r(   r)   r‡   rn   re   r*   r!   r+   r   r   r   r   r   ®   s?   ‡ à'+€FÐ$Ó+ð
 ,0ñ3ð )ð3ð 
õ	3ð ó"ó ó"r   r   c                  óP   • \ rS rSr% SrS\S'   SS.   S	S jjr\S
S j5       rSr	g)r   éÜ   Núbool | NoneÚeditable©rœ   c               ó2   • [         R                  U SU5        g )Nrœ   r~   )rc   rœ   s     r   re   ÚDirInfo.__init__à   s   € ô
 	×Ñ˜4 ¨XÕ6r   c                ó,   • U " [        U[        S5      S9$ )Nrœ   r�   )r<   Úboolr   s     r   r!   ÚDirInfo._from_dictç   s   € áÜ˜!œT :Ó.ñ
ð 	
r   r   )rœ   r›   r%   rl   r#   )
r&   r'   r(   r)   rœ   rn   re   r*   r!   r+   r   r   r   r   r   Ü   s>   ‡ à €HˆkÓ ð
 !%ñ7ð ð7ð 
õ	7ð ó
ó ó
r   r   c                  óà   • \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   SrS
\S'   Sr	S\S'   SSSSS.           SS jjr
\SS j5       r\SS j5       rSSSS.       SS jjrSS jrSrg)r   éî   z"A class representing a direct URL.r_   rY   NúArchiveInfo | NoneÚarchive_infoúVcsInfo | NoneÚvcs_infoúDirInfo | NoneÚdir_infor^   Úsubdirectory)r¦   r¨   rª   r«   c               óê   • [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        g )NrY   r¦   r¨   rª   r«   r~   )rc   rY   r¦   r¨   rª   r«   s         r   re   ÚDirectUrl.__init__ø   s^   € ô 	×Ñ˜4 ¨Ô,Ü×Ñ˜4 °Ô>Ü×Ñ˜4 ¨XÔ6Ü×Ñ˜4 ¨XÔ6Ü×Ñ˜4 °Õ>r   c                ó¾  • U " [        U[        S5      [        U[        S5      [        U[        S5      [        U[
        S5      [        U[        S5      S9n[        UR                  5      [        UR                  5      -   [        UR                  5      -   S:w  a  [        S5      eUR                  b*  UR                  R                  S	5      (       d
  [        S
SS9eU$ )NrY   r¦   r¨   rª   r«   )rY   r¦   r¨   rª   r«   rG   z?Exactly one of vcs_info, archive_info, dir_info must be presentzfile://z3URL scheme must be file:// when dir_info is presentr5   )r?   r_   rD   r   r   r   r<   r¡   r¨   r¦   rª   r   rY   Ú
startswith)r   r    Ú
direct_urls      r   r!   ÚDirectUrl._from_dict  s×   € áÜ˜a¤ eÓ,Ü$ Q¬°^ÓDÜ  ¤G¨ZÓ8Ü  ¤G¨ZÓ8Ü˜a¤ nÓ5ñ
ˆ
ô �×$Ñ$Ó%Ü�:×*Ñ*Ó+ñ,ä�:×&Ñ&Ó'ñ(ð ó	ô
 +ØQóð ð ×ÑÑ*°:·>±>×3LÑ3LÈY×3WÑ3WÜ*ØEØñð ð
 Ðr   c               ó$   • U R                  U5      $ )z@Create and validate a DirectUrl instance from a JSON dictionary.)r!   r   s     r   Ú	from_dictÚDirectUrl.from_dict   s   € ð �~‰~˜aÓ Ð r   FT)Úgit)Úgenerate_legacy_hashÚstrip_user_passwordrL   c               óh  • [         R                  " U [        S9nU(       aq  U R                  (       a`  U R                  R                  (       aE  [        [        U R                  R                  R                  5       5      5      u  pVU SU 3US   S'   U(       a  [        U R                  U5      US'   U$ )a>  Convert the DirectUrl instance to a JSON dictionary.

:param generate_legacy_hash: If True, include a legacy `hash` field in
    `archive_info` for backward compatibility with tools that don't
    support the `hashes` field.
:param strip_user_password: If True, strip user:password from the URL
    unless it is formed with environment variables as specified in PEP
    610, or it is a safe user:password such as `git`.
:param safe_user_passwords: A collection of user:password strings that
    should not be stripped from the URL even if `strip_user_password` is
    True.
)Údict_factoryr’   r¦   r‘   rY   )
ÚdataclassesÚasdictr2   r¦   r‡   ÚnextÚiterÚitemsr[   rY   )rc   r¶   r·   rL   Úresr–   r—   s          r   Úto_dictÚDirectUrl.to_dict%  s�   € ô& × Ò  Ô4FÑGˆÞ D×$5×$5¸$×:KÑ:K×:R×:RÜ)-¬d°4×3DÑ3D×3KÑ3K×3QÑ3QÓ3SÓ.TÓ)UÑ&ˆNØ-;Ð,<¸A¸j¸\Ð*JˆC�Ñ Ñ'ÞÜ# D§H¡HÐ.AÓBˆC�‰JØˆ
r   c                óB   • U R                  U R                  5       5        g)zqValidate the DirectUrl instance against the specification.

Raises :class:`DirectUrlValidationError` if invalid.
N)r³   rÀ   ri   s    r   ÚvalidateÚDirectUrl.validate@  s   € ð
 	�‰�t—|‘|“~Õ&r   r   )rY   r_   r¦   r¥   r¨   r§   rª   r©   r«   r^   r%   rl   r#   )r¶   r¡   r·   r¡   rL   úCollection[str]r%   r$   )r%   rl   )r&   r'   r(   r)   rm   rn   r¦   r¨   rª   r«   re   r*   r!   r³   rÀ   rÃ   r+   r   r   r   r   r   î   sç   ‡ á,à	ƒHØ'+€LÐ$Ó+Ø#€HˆnÓ#Ø#€HˆnÓ#Ø#€L�*Ó#ð ,0Ø#'Ø#'Ø#'ñ?ð ð?ð )ð	?ð
 !ð?ð !ð?ð !ð?ð 
õ?ð óó ðð0 ó!ó ð!ð &+Ø$(Ø/7ñð #ðð "ð	ð
 -ðð 
õ÷6'r   r   )r%   z	list[str])r/   zlist[tuple[str, Any]]r%   zdict[str, Any])r    r$   r;   útype[_T]r0   r_   r%   z	_T | None)r    r$   r;   rÆ   r0   r_   r%   r   )r    r$   rB   ztype[_FromMappingProtocolT]r0   r_   r%   z_FromMappingProtocolT | None)rK   r_   rL   rÅ   r%   r_   )rY   r_   rL   rÅ   r%   r_   )'Ú
__future__r   rº   ÚreÚurllib.parserQ   Úcollections.abcr   Útypingr   r   r   r   Úsysr	   Úversion_infor   Útyping_extensionsr   r   r   r   r,   r2   r<   r?   rD   ÚcompilerI   rO   r[   rA   r   r>   Ú	dataclassr   r   r   r   r   r   r   Ú<module>rÑ      su  ðÝ "ã Û 	Û Ý #ß 8Ó 8æÛÝ*à
×Ñ˜7Ó"Þå*ò€ôñ ˆTƒ]€ô;˜8ô ;ñ
  Ð 7Ð?SÑTÐ ôDô
ôð	>Øð	>Ø'Bð	>ØILð	>à!ô	>ð $&§:¢:Ø5ó$Ð  ô
ôô$˜yô ô<@Ð!9ô @ð
 ×Ò˜d¨Ñ/÷
ð 
ó 0ð
ð4 ×Ò˜d¨Ñ/÷*"ð *"ó 0ð*"ðZ ×Ò˜d¨Ñ/÷
ð 
ó 0ð
ð" ×Ò˜d¨Ñ/÷V'ð V'ó 0ñV'r   