+
    ®¾j¸!  ã                   ó¸  € ^ 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 ^ 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 ] P6                  ! ]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# )é    N)Údefaultdict)ÚCallableÚDictÚIterableÚListÚOptionalÚTuple)ÚInvalidSdistFilenameÚInvalidWheelFilenameÚcanonicalize_nameÚparse_sdist_filenameÚparse_wheel_filename)ÚInstallationCandidate)ÚLink)Úpath_to_urlÚurl_to_path)Úis_urlc                   ó`   a € ] tR t^t o ]V 3R lR l4       tV 3R lR ltV 3R lR ltRtV t	R# )	Ú
LinkSourcec                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©é   Úreturn©r   r   )ÚformatÚ__classdict__s   "€ÚZ/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/pip/_internal/index/sources.pyÚ__annotate__ÚLinkSource.__annotate__   s   ø€ ÷ $ñ $‘h™t•nñ $ó    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S[ /# r   ©ÚFoundCandidates)r   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S[ /# r   ©Ú
FoundLinks)r   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    © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úpropertyr&   r,   r3   Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      s+   ø‡ € Ø÷$ó ð$÷$ð $÷$ö $r    r   c                ó0   € V ^8„  d   QhR\         R\        /# )r   Úfile_urlr   )ÚstrÚbool)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)r?   s   &r   Ú_is_html_filerF   +   s   € Ü×Ò °Ô7¸Õ:¸kÑIÐIr    c                   ó€   a € ] tR t^/t o RtV 3R lR ltV 3R lR lt]V 3R lR l4       t]V 3R lR	 l4       t	R
t
V tR# )Ú_FlatDirectoryToUrlsz"Scans directory and caches resultsc                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Úpathr   N)r@   )r   r   s   "€r   r   Ú!_FlatDirectoryToUrls.__annotate__2   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%   rJ   s   &&r   Ú__init__Ú_FlatDirectoryToUrls.__init__2   s$   € ØŒ
Ø+-ˆÔÜ;FÄtÓ;LˆÔ"Ø"'ˆÖr    c                ó   <€ V ^8„  d   QhRR/# )r   r   Nr5   )r   r   s   "€r   r   rK   8   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ÚscandirrM   r   rJ   rF   rN   Úappendr   Únamer   r   r
   rP   rQ   )r%   ÚentryÚurlÚproject_filenames   &   r   Ú_scan_directoryÚ$_FlatDirectoryToUrls._scan_directory8   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                ó0   <€ V ^8„  d   QhRS[ S[,          /# r   )r   r@   )r   r   s   "€r   r   rK   P   s   ø€ ÷ %ñ %¡¡c¥ñ %r    c                ó^   € V P                   '       g   V P                  4        V P                  # ©N)rQ   r]   rN   r$   s   &r   r,   Ú$_FlatDirectoryToUrls.page_candidatesO   s&   € à×&×&Ð&Ø× Ñ Ô"à×$Ñ$Ð$r    c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# r   )r   r@   r   )r   r   s   "€r   r   rK   W   s!   ø€ ÷ *ñ *¡d©3±±Sµ	¨>Õ&:ñ *r    c                ó^   € V P                   '       g   V P                  4        V P                  # ra   )rQ   r]   rP   r$   s   &r   Úproject_name_to_urlsÚ)_FlatDirectoryToUrls.project_name_to_urlsV   s&   € à×&×&Ð&Ø× Ñ Ô"à×)Ñ)Ð)r    )rN   rM   rP   rQ   N)r6   r7   r8   r9   Ú__doc__rR   r]   r:   r,   re   r;   r<   r=   s   @r   rH   rH   /   sD   ø‡ € Ù,÷(ð (÷'ð 'ð. ÷%ó ð%ð ÷*ó ö*r    rH   c                   ó†   a € ] tR t^^t o Rt/ 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# )Ú_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.
c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r   Úcandidates_from_pagerJ   Úproject_namer   N)ÚCandidatesFromPager@   )r   r   s   "€r   r   Ú!_FlatDirectorySource.__annotate__i   s3   ø€ ÷ ;ñ ;á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# ))rJ   N)Ú_candidates_from_pager   Ú_project_nameÚ_paths_to_urlsÚ_path_to_urlsrH   )r%   rk   rJ   rl   s   &&&&r   rR   Ú_FlatDirectorySource.__init__i   s[   € ð &:Ô"Ü.¨|Ó<ˆÔð ×&Ñ&Ô&Ø!%×!4Ñ!4°TÕ!:ˆDÖä!5¸4Ô!@ˆDÔØ(,×(:Ñ(:ˆD×Ñ Ó%r    c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r   r   )r   r   s   "€r   r   rn   z   s   ø€ ÷ ñ ‘h™t•nñ r    c                ó   € R # ra   r5   r$   s   &r   r&   Ú_FlatDirectorySource.linky   s   € ár    c                ó    <€ V ^8„  d   QhRS[ /# r   r)   )r   r   s   "€r   r   rn   }   s   ø€ ÷ =ñ =¡ñ =r    c              #  ó�   "  € V P                   P                   F%  pV P                  \        V4      4       R j  x€L
  K'  	  R #  L
5ira   )rs   r,   rp   r   ©r%   r[   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S[ /# r   r0   )r   r   s   "€r   r   rn   �   s   ø€ ÷ ñ ™Jñ r    c              #  ó„   "  € V P                   P                  V P                  ,           F  p\        V4      x € K  	  R # 5ira   )rs   re   rq   r   rz   s   & r   r3   Ú_FlatDirectorySource.file_links�   s3   é € Ø×%Ñ%×:Ñ:¸4×;MÑ;M×NÐNˆCÜ�s“)ŒOó Oùs   ‚>A c                ó<   <€ V ^8„  d   Qh/ S[ S[S[3,          ;R&   # )r   rr   )r   r@   rH   )r   r   s   "€r   r   rn   ^   s   ø‡ ‚ ñ ™Ñ2Ð2Õ3Ñ8ò r    )rp   rs   rq   N)r6   r7   r8   r9   rg   rr   rR   r:   r&   r,   r3   Ú__annotate_func__r;   r<   r=   s   @r   ri   ri   ^   sK   ø‡ € ñð 79€N÷;ð ;ð  ÷ó ð÷=ð =÷ð ÷G ƒ r    ri   c                   óv   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t	R
t
V 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S[ RS[RR/# ©r   rk   r&   r   N©rm   r   )r   r   s   "€r   r   Ú_LocalFileSource.__annotate__�   ó)   ø€ ÷ ñ á0ðñ ðð 
ñ	r    c                ó   € Wn         W n        R # ra   ©rp   Ú_link©r%   rk   r&   s   &&&r   rR   Ú_LocalFileSource.__init__�   ó   € ð
 &:Ô"ØŽ
r    c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r   r   )r   r   s   "€r   r   r†   ™   ó   ø€ ÷ ñ ‘h™t•nñ r    c                ó   € V P                   # ra   ©rŠ   r$   s   &r   r&   Ú_LocalFileSource.link˜   ó   € à�z‰zÐr    c                ó    <€ V ^8„  d   QhRS[ /# 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ra   )rF   rŠ   r[   rp   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S[ /# r   r0   )r   r   s   "€r   r   r†   ¡   s   ø€ ÷ ñ ™Jñ r    c              #  óx   "  € \        V P                  P                  4      '       d   R # V P                  x € R # 5ira   )rF   rŠ   r[   r$   s   &r   r3   Ú_LocalFileSource.file_links¡   s%   é € Ü˜Ÿ™Ÿ™×(Ò(ÙØ�j‰jÔùs   ‚8:r‰   N©r6   r7   r8   r9   rg   rR   r:   r&   r,   r3   r;   r<   r=   s   @r   r‚   r‚   †   s<   ø‡ € ñ÷ð ð ÷ó ð÷:ð :÷
ö r    r‚   c                   óv   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t	R
t
V 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                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r   rk   Úpage_validatorr&   r   N)rm   ÚPageValidatorr   )r   r   s   "€r   r   Ú_RemoteFileSource.__annotate__°   s3   ø€ ÷ ñ á0ðñ &ðñ ð	ð
 
ñr    c                ó*   € Wn         W n        W0n        R # ra   )rp   Ú_page_validatorrŠ   )r%   rk   rŸ   r&   s   &&&&r   rR   Ú_RemoteFileSource.__init__°   s   € ð &:Ô"Ø-ÔØŽ
r    c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r   r   )r   r   s   "€r   r   r¡   »   r�   r    c                ó   € V P                   # ra   r‘   r$   s   &r   r&   Ú_RemoteFileSource.linkº   r“   r    c                ó    <€ V ^8„  d   QhRS[ /# 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ra   )r£   rŠ   rp   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S[ /# r   r0   )r   r   s   "€r   r   r¡   Ã   s   ø€ ÷ ñ ™Jñ r    c              #  ó*   "  € V P                   x € R # 5ira   r‘   r$   s   &r   r3   Ú_RemoteFileSource.file_linksÃ   s   é € Ø�j‰jÔùs   ‚)rp   rŠ   r£   Nr›   r=   s   @r   r�   r�   §   s<   ø‡ € ñ÷ð ð ÷ó ð÷:ð :÷
ö r    r�   c                   óv   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t	R
t
V 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S[ RS[RR/# r„   r…   )r   r   s   "€r   r   Ú"_IndexDirectorySource.__annotate__Î   r‡   r    c                ó   € Wn         W n        R # ra   r‰   r‹   s   &&&r   rR   Ú_IndexDirectorySource.__init__Î   r�   r    c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r   r   )r   r   s   "€r   r   r±   ×   r�   r    c                ó   € V P                   # ra   r‘   r$   s   &r   r&   Ú_IndexDirectorySource.linkÖ   r“   r    c                ó    <€ V ^8„  d   QhRS[ /# 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ra   r‰   r$   s   &r   r,   Ú%_IndexDirectorySource.page_candidatesÚ   s   é € Ø×-Ñ-¨d¯j©jÓ9×9Ô9ùs   ‚*¡(¢*c                ó    <€ V ^8„  d   QhRS[ /# r   r0   )r   r   s   "€r   r   r±   Ý   s   ø€ ÷ ñ ™Jñ r    c                ó   € R# )Nr5   r5   r$   s   &r   r3   Ú _IndexDirectorySource.file_linksÝ   s   € Øˆ	r    r‰   Nr›   r=   s   @r   r¯   r¯   Ç   s<   ø‡ € ñ÷ð ð ÷ó ð÷:ð :÷ö r    r¯   c                óº   € V ^8„  d   QhR\         R\        R\        R\        R\        R\         R\        \
        \         ,          \
        \        ,          3,          /# )r   Úlocationrk   rŸ   Ú
expand_dirÚcache_link_parsingrl   r   )r@   rm   r    rA   r	   r   r   )r   s   "r   r   r   á   sc   € ÷ ;ñ ;Üð;ô -ð;ô "ð	;ô
 ð;ô ð;ô ð;ô Œ8”C�=œ(¤:Õ.Ð.Õ/ñ;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À   )rk   rŸ   r&   )rk   rJ   rl   )rk   r&   z?Location '%s' is ignored: it is neither a file nor a directory.)NN)rV   rJ   Úexistsr   Ú
startswithr   r   ÚloggerÚwarningr�   r   Úisdirri   r¯   Úisfiler‚   )
r¾   rk   rŸ   r¿   rÀ   rl   rJ   r[   Ú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    )+ÚloggingrD   rV   Úcollectionsr   Útypingr   r   r   r   r   r	   Úpip._vendor.packaging.utilsr
   r   r   r   r   Úpip._internal.models.candidater   Úpip._internal.models.linkr   Úpip._internal.utils.urlsr   r   Úpip._internal.vcsr   Ú	getLoggerr6   rÄ   r*   r1   rm   rA   r    r   rF   rH   ri   r‚   r�   r¯   rÊ   r5   r    r   Ú<module>rÔ      sÏ   ðÛ Û Û 	Ý #ß B× B÷õ õ AÝ *ß =Ý $à	×	Ò	˜8Ó	$€àÐ0Õ1€Ø�d�^€
Ø˜t˜f hÐ/DÕ&EÐEÕFÐ Ø˜$˜ ˜Õ&€÷$ñ $õJ÷,*ñ ,*ô^%˜:ô %ôP�zô ôB˜
ô ô@˜Jô ÷4;r    