+
    BV-j¿!  ã                  ó¼  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHtHtHtHt ^ RIHt ^ RIHt ^ R	IHtHt ^ R
IHt ]P4                  ! ]4      t]],          t]],          t]
].]],          3,          t]
].] 3,          t! ! R R4      t"R R lt# ! R R4      t$ ! R R]"4      t% ! R R]"4      t& ! R R]"4      t' ! R R]"4      t(R R lt)R# )é    )ÚannotationsN)Údefaultdict)ÚIterable)ÚCallable)ÚInvalidSdistFilenameÚInvalidWheelFilenameÚcanonicalize_nameÚparse_sdist_filenameÚparse_wheel_filename)ÚInstallationCandidate)ÚLink)Úpath_to_urlÚurl_to_path)Úis_urlc                  óD   € ] tR t^t]R R l4       tR R ltR R ltRtR# )	Ú
LinkSourcec               ó   € V ^8„  d   QhRR/# ©é   ÚreturnzLink | None© )Úformats   "Úl/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pip/_internal/index/sources.pyÚ__annotate__ÚLinkSource.__annotate__!   s   € ÷ $ñ $�kñ $ó    c                ó   € \        4       h)z,Returns the underlying link, if there's one.©ÚNotImplementedError©Úselfs   &r   ÚlinkÚLinkSource.link    s   € ô "Ó#Ð#r   c               ó   € V ^8„  d   QhRR/# ©r   r   ÚFoundCandidatesr   )r   s   "r   r   r   %   s   € ÷ $ñ $ ñ $r   c                ó   € \        4       h)z9Candidates found by parsing an archive listing HTML file.r   r    s   &r   Úpage_candidatesÚLinkSource.page_candidates%   ó   € ä!Ó#Ð#r   c               ó   € V ^8„  d   QhRR/# ©r   r   Ú
FoundLinksr   )r   s   "r   r   r   )   s   € ÷ $ñ $˜Jñ $r   c                ó   € \        4       h)z,Links found by specifying archives directly.r   r    s   &r   Ú
file_linksÚLinkSource.file_links)   r*   r   r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úpropertyr"   r(   r/   Ú__static_attributes__r   r   r   r   r      s#   † Øô$ó ð$õ$÷$ñ $r   r   c               ó    € V ^8„  d   QhRRRR/# )r   Úfile_urlÚstrr   Úboolr   )r   s   "r   r   r   .   s   € ÷ Jñ J˜Cð J Dñ Jr   c                óF   € \         P                  ! V R R7      ^ ,          R8H  # )F)Ústrictz	text/html)Ú	mimetypesÚ
guess_type)r8   s   &r   Ú_is_html_filer?   .   s   € Ü×Ò °Ô7¸Õ:¸kÑIÐIr   c                  ó^   € ] tR t^2tRtR R ltR R lt]R R l4       t]R R	 l4       t	R
t
R# )Ú_FlatDirectoryToUrlsz"Scans directory and caches resultsc               ó    € V ^8„  d   QhRRRR/# )r   Úpathr9   r   ÚNoner   )r   s   "r   r   Ú!_FlatDirectoryToUrls.__annotate__5   s   € ÷ (ñ (˜Sð ( Tñ (r   c                	óV   € Wn         . V n        \        \        4      V n        R V n        R# )FN)Ú_pathÚ_page_candidatesr   ÚlistÚ_project_name_to_urlsÚ_scanned_directory)r!   rC   s   &&r   Ú__init__Ú_FlatDirectoryToUrls.__init__5   s$   € ØŒ
Ø+-ˆÔÜ;FÄtÓ;LˆÔ"Ø"'ˆÖr   c               ó   € V ^8„  d   QhRR/# )r   r   rD   r   )r   s   "r   r   rE   ;   s   € ÷ 'ñ ' ñ 'r   c                óè  € \         P                  ! V P                  4       F…  p\        VP                  4      p\        V4      '       d   V P                  P                  V4       KF   \        VP                  4      ^ ,          pT P                  T,          P                  T4       K‡  	  RV n        R#   \         d4     \        TP                  4      ^ ,          p LY  \         d      KË  i ; ii ; i)zbScans directory once and populates both page_candidates
and project_name_to_urls at the same time
TN)ÚosÚscandirrG   r   rC   r?   rH   Úappendr   Únamer   r
   r   rJ   rK   )r!   ÚentryÚurlÚproject_filenames   &   r   Ú_scan_directoryÚ$_FlatDirectoryToUrls._scan_directory;   sÆ   € ô —Z’Z §
¡
Ö+ˆEÜ˜eŸj™jÓ)ˆCÜ˜S×!Ò!Ø×%Ñ%×,Ñ,¨SÔ1ÙðÜ#7¸¿
¹
Ó#CÀAÕ#FÐ ð ×&Ñ&Ð'7Õ8×?Ñ?ÀÖDñ! ,ð" #'ˆÖøô (ô ðÜ';¸E¿J¹JÓ'GÈÕ'JÒ$øÜ+ô Ûðúðús*   Á(B3Â3C1Â?CÃC-Ã(C1Ã,C-Ã-C1c               ó   € V ^8„  d   QhRR/# )r   r   z	list[str]r   )r   s   "r   r   rE   S   s   € ÷ %ñ % ñ %r   c                	ó^   € V P                   '       g   V P                  4        V P                  # ©N)rK   rW   rH   r    s   &r   r(   Ú$_FlatDirectoryToUrls.page_candidatesR   s&   € à×&×&Ð&Ø× Ñ Ô"à×$Ñ$Ð$r   c               ó   € V ^8„  d   QhRR/# )r   r   zdict[str, list[str]]r   )r   s   "r   r   rE   Z   s   € ÷ *ñ *Ð&:ñ *r   c                	ó^   € V P                   '       g   V P                  4        V P                  # r[   )rK   rW   rJ   r    s   &r   Úproject_name_to_urlsÚ)_FlatDirectoryToUrls.project_name_to_urlsY   s&   € à×&×&Ð&Ø× Ñ Ô"à×)Ñ)Ð)r   )rH   rG   rJ   rK   N)r1   r2   r3   r4   Ú__doc__rL   rW   r5   r(   r_   r6   r   r   r   rA   rA   2   s7   † Ù,õ(õ'ð. ô%ó ð%ð ô*ó ô*r   rA   c                  ód   € ] tR t^at$ Rt/ tR]R&   R R lt]R R l4       t	R R	 lt
R
 R ltRtR# )Ú_FlatDirectorySourcezëLink source specified by ``--find-links=<path-to-dir>``.

This looks the content of the directory, and returns:

* ``page_candidates``: Links listed on each HTML file in the directory.
* ``file_candidates``: Archives in the directory.
zdict[str, _FlatDirectoryToUrls]Ú_paths_to_urlsc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úcandidates_from_pageÚCandidatesFromPagerC   r9   Úproject_namer   rD   r   )r   s   "r   r   Ú!_FlatDirectorySource.__annotate__l   s2   € ÷ ;ñ ;à0ð;ð ð;ð ð	;ð
 
ñ;r   c                	óÚ   € Wn         \        V4      V n        W P                  9   d   V P                  V,          V n        R# \        VR 7      V n        V P                  V P                  V&   R# ))rC   N)Ú_candidates_from_pager	   Ú_project_namerd   Ú_path_to_urlsrA   )r!   rf   rC   rh   s   &&&&r   rL   Ú_FlatDirectorySource.__init__l   s[   € ð &:Ô"Ü.¨|Ó<ˆÔð ×&Ñ&Ô&Ø!%×!4Ñ!4°TÕ!:ˆDÖä!5¸4Ô!@ˆDÔØ(,×(:Ñ(:ˆD×Ñ Ó%r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ri   }   s   € ÷ ñ �kñ r   c                	ó   € R # r[   r   r    s   &r   r"   Ú_FlatDirectorySource.link|   s   € ár   c               ó   € V ^8„  d   QhRR/# r%   r   )r   s   "r   r   ri   €   s   € ÷ =ñ = ñ =r   c              #  	ó�   "  € V P                   P                   F%  pV P                  \        V4      4       R j  x€L
  K'  	  R #  L
5ir[   )rm   r(   rk   r   ©r!   rU   s   & r   r(   Ú$_FlatDirectorySource.page_candidates€   s6   é € Ø×%Ñ%×5Ô5ˆCØ×1Ñ1´$°s³)Ó<×<Ò<ó 6Ù<ùs   ‚7A¹AºAc               ó   € V ^8„  d   QhRR/# r,   r   )r   s   "r   r   ri   „   s   € ÷ ñ ˜Jñ r   c              #  	ó„   "  € V P                   P                  V P                  ,           F  p\        V4      x € K  	  R # 5ir[   )rm   r_   rl   r   rt   s   & r   r/   Ú_FlatDirectorySource.file_links„   s3   é € Ø×%Ñ%×:Ñ:¸4×;MÑ;M×NÐNˆCÜ�s“)ŒOó Oùs   ‚>A )rk   rm   rl   N)r1   r2   r3   r4   ra   rd   Ú__annotations__rL   r5   r"   r(   r/   r6   r   r   r   rc   rc   a   s<   ‡ ñð 79€NÐ3Ó8õ;ð  ôó ðõ=÷ñ r   rc   c                  óT   € ] tR t^‰tRtR R lt]R R l4       tR R ltR R	 lt	R
t
R# )Ú_LocalFileSourcea/  ``--find-links=<path-or-url>`` or ``--[extra-]index-url=<path-or-url>``.

If a URL is supplied, it must be a ``file:`` URL. If a path is supplied to
the option, it is converted to a URL first. This returns:

* ``page_candidates``: Links listed on an HTML file.
* ``file_candidates``: The non-HTML file.
c               ó$   € V ^8„  d   QhRRRRRR/# ©r   rf   rg   r"   r   r   rD   r   )r   s   "r   r   Ú_LocalFileSource.__annotate__“   ó(   € ÷ ñ à0ðð ðð 
ñ	r   c                	ó   € Wn         W n        R # r[   ©rk   Ú_link©r!   rf   r"   s   &&&r   rL   Ú_LocalFileSource.__init__“   ó   € ð
 &:Ô"ØŽ
r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r~   œ   ó   € ÷ ñ �kñ r   c                	ó   € V P                   # r[   ©r‚   r    s   &r   r"   Ú_LocalFileSource.link›   ó   € à�z‰zÐr   c               ó   € V ^8„  d   QhRR/# r%   r   )r   s   "r   r   r~   Ÿ   ó   € ÷ :ñ : ñ :r   c              #  	ó¦   "  € \        V P                  P                  4      '       g   R # V P                  V P                  4       R j  x€L
  R #  L5ir[   )r?   r‚   rU   rk   r    s   &r   r(   Ú _LocalFileSource.page_candidatesŸ   s3   é € Ü˜TŸZ™ZŸ^™^×,Ò,ÙØ×-Ñ-¨d¯j©jÓ9×9Ô9ùs   ‚AAÁAÁ	Ac               ó   € V ^8„  d   QhRR/# r,   r   )r   s   "r   r   r~   ¤   s   € ÷ ñ ˜Jñ r   c              #  	óx   "  € \        V P                  P                  4      '       d   R # V P                  x € R # 5ir[   )r?   r‚   rU   r    s   &r   r/   Ú_LocalFileSource.file_links¤   s%   é € Ü˜Ÿ™Ÿ™×(Ò(ÙØ�j‰jÔùs   ‚8:r�   N©r1   r2   r3   r4   ra   rL   r5   r"   r(   r/   r6   r   r   r   r{   r{   ‰   s/   † ñõð ôó ðõ:÷
ñ r   r{   c                  óT   € ] tR t^ªtRtR R lt]R R l4       tR R ltR R	 lt	R
t
R# )Ú_RemoteFileSourcez¨``--find-links=<url>`` or ``--[extra-]index-url=<url>``.

This returns:

* ``page_candidates``: Links listed on an HTML file.
* ``file_candidates``: The non-HTML file.
c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rf   rg   Úpage_validatorÚPageValidatorr"   r   r   rD   r   )r   s   "r   r   Ú_RemoteFileSource.__annotate__³   s2   € ÷ ñ à0ðð &ðð ð	ð
 
ñr   c                	ó*   € Wn         W n        W0n        R # r[   )rk   Ú_page_validatorr‚   )r!   rf   r—   r"   s   &&&&r   rL   Ú_RemoteFileSource.__init__³   s   € ð &:Ô"Ø-ÔØŽ
r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r™   ¾   r‡   r   c                	ó   € V P                   # r[   r‰   r    s   &r   r"   Ú_RemoteFileSource.link½   r‹   r   c               ó   € V ^8„  d   QhRR/# r%   r   )r   s   "r   r   r™   Á   r�   r   c              #  	óž   "  € V P                  V P                  4      '       g   R # V P                  V P                  4       R j  x€L
  R #  L5ir[   )r›   r‚   rk   r    s   &r   r(   Ú!_RemoteFileSource.page_candidatesÁ   s5   é € Ø×#Ñ# D§J¡J×/Ò/ÙØ×-Ñ-¨d¯j©jÓ9×9Ô9ùs   ‚AAÁAÁAc               ó   € V ^8„  d   QhRR/# r,   r   )r   s   "r   r   r™   Æ   s   € ÷ ñ ˜Jñ r   c              #  	ó*   "  € V P                   x € R # 5ir[   r‰   r    s   &r   r/   Ú_RemoteFileSource.file_linksÆ   s   é € Ø�j‰jÔùs   ‚)rk   r‚   r›   Nr“   r   r   r   r•   r•   ª   s/   † ñõð ôó ðõ:÷
ñ r   r•   c                  óT   € ] tR t^ÊtRtR R lt]R R l4       tR R ltR R	 lt	R
t
R# )Ú_IndexDirectorySourcez«``--[extra-]index-url=<path-to-directory>``.

This is treated like a remote URL; ``candidates_from_page`` contains logic
for this by appending ``index.html`` to the link.
c               ó$   € V ^8„  d   QhRRRRRR/# r}   r   )r   s   "r   r   Ú"_IndexDirectorySource.__annotate__Ñ   r   r   c                	ó   € Wn         W n        R # r[   r�   rƒ   s   &&&r   rL   Ú_IndexDirectorySource.__init__Ñ   r…   r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r©   Ú   r‡   r   c                	ó   € V P                   # r[   r‰   r    s   &r   r"   Ú_IndexDirectorySource.linkÙ   r‹   r   c               ó   € V ^8„  d   QhRR/# r%   r   )r   s   "r   r   r©   Ý   s   € ÷ :ñ : ñ :r   c              #  	óX   "  € V P                  V P                  4       R j  x€L
  R #  L5ir[   r�   r    s   &r   r(   Ú%_IndexDirectorySource.page_candidatesÝ   s   é € Ø×-Ñ-¨d¯j©jÓ9×9Ô9ùs   ‚*¡(¢*c               ó   € V ^8„  d   QhRR/# r,   r   )r   s   "r   r   r©   à   s   € ÷ ñ ˜Jñ r   c                	ó   € R# )Nr   r   r    s   &r   r/   Ú _IndexDirectorySource.file_linksà   s   € Øˆ	r   r�   Nr“   r   r   r   r§   r§   Ê   s/   † ñõð ôó ðõ:÷ñ r   r§   c               ó4   € V ^8„  d   QhRRRRRRRRR	RR
RRR/# )r   Úlocationr9   rf   rg   r—   r˜   Ú
expand_dirr:   Úcache_link_parsingrh   r   z$tuple[str | None, LinkSource | None]r   )r   s   "r   r   r   ä   sP   € ÷ ;ñ ;Øð;ð -ð;ð "ð	;ð
 ð;ð ð;ð ð;ð *ñ;r   c          	     óº  € R pR p\         P                  P                  V 4      '       d   \        V 4      pT pM8V P	                  R4      '       d   T p\        V 4      pM\        V 4      '       d   T pVf   Rp\        P                  W€4       R# Vf   \        VV\        WtR7      R7      p	Wy3# \         P                  P                  V4      '       d4   V'       d   \        VVVR7      p	Wy3# \        V\        WtR7      R7      p	Wy3# \         P                  P                  V4      '       d   \        V\        WtR7      R7      p	Wy3# \        P                  RV 4       VR 3# )	Nzfile:zVLocation '%s' is ignored: it is either a non-existing path or lacks a specific scheme.)r¸   )rf   r—   r"   )rf   rC   rh   )rf   r"   z?Location '%s' is ignored: it is neither a file nor a directory.)NN)rP   rC   Úexistsr   Ú
startswithr   r   ÚloggerÚwarningr•   r   Úisdirrc   r§   Úisfiler{   )
r¶   rf   r—   r·   r¸   rh   rC   rU   ÚmsgÚsources
   &$$$$$    r   Úbuild_sourcerÂ   ä   sO  € ð €DØ€CÜ	‡w�w‡~�~�h×ÒÜ˜(Ó#ˆØ‰Ø	×	Ñ	˜W×	%Ò	%ØˆÜ˜8Ó$‰Ü	�×	Ò	Øˆà
‚{ðKð 	ô 	�‰�sÔ%ØÐà‚|Ü.Ø!5Ø)Ü�cÔAô
ˆð
 ˆ}Ðä	‡w�w‡}�}�T×ÒßÜ)Ø%9ØØ)ôˆFð ˆ}Ðô	 +Ø%9Ü˜#ÔEôˆFð ˆ}ÐÜ	�‰�‰˜×	Ò	Ü!Ø!5Ü�cÔAô
ˆð ˆ}ÐÜ
‡N�NØIØôð �ˆ;Ðr   )*Ú
__future__r   Úloggingr=   rP   Úcollectionsr   Úcollections.abcr   Útypingr   Úpip._vendor.packaging.utilsr   r   r	   r
   r   Úpip._internal.models.candidater   Úpip._internal.models.linkr   Úpip._internal.utils.urlsr   r   Úpip._internal.vcsr   Ú	getLoggerr1   r¼   r&   r-   rg   r:   r˜   r   r?   rA   rc   r{   r•   r§   rÂ   r   r   r   Ú<module>rÎ      sÒ   ðÝ "ã Û Û 	Ý #Ý $Ý ÷õ õ AÝ *ß =Ý $à	×	Ò	˜8Ó	$€àÐ0Õ1€Ø�d�^€
Ø˜t˜f hÐ/DÕ&EÐEÕFÐ Ø˜$˜ ˜Õ&€÷$ñ $õJ÷,*ñ ,*ô^%˜:ô %ôP�zô ôB˜
ô ô@˜Jô ÷4;r   