1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Ë
ñúh¿!ãó¦—ddlmZddlZddlZddlZddlmZddlmZddl    m
Z
ddl m Z m Z mZmZmZddlmZddlmZdd    lmZmZdd
lmZej4e«ZeeZeeZe
egeefZe
ege fZ!Gd „d «Z"dd „Z#Gd„d«Z$Gd„de"«Z%Gd„de"«Z&Gd„de"«Z'Gd„de"«Z(                                                        dd„Z)y)é)Ú annotationsN)Ú defaultdict)ÚIterable)ÚCallable)ÚInvalidSdistFilenameÚInvalidWheelFilenameÚcanonicalize_nameÚparse_sdist_filenameÚparse_wheel_filename)ÚInstallationCandidate)ÚLink)Ú path_to_urlÚ url_to_path)Úis_urlcó.—eZdZedd„«Zdd„Zdd„Zy)Ú
LinkSourcecó—t«‚)z,Returns the underlying link, if there's one.©ÚNotImplementedError©Úselfs úNH:\Change_password\venv_build\Lib\site-packages\pip/_internal/index/sources.pyÚlinkzLinkSource.link s €ô"Ó#Ð#ócó—t«‚)z9Candidates found by parsing an archive listing HTML file.rrs rÚpage_candidateszLinkSource.page_candidates%ó €ä!Ó#Ð#rcó—t«‚)z,Links found by specifying archives directly.rrs rÚ
file_linkszLinkSource.file_links)rrN©Úreturnz Link | None©r!ÚFoundCandidates©r!Ú
FoundLinks)Ú__name__Ú
__module__Ú __qualname__Úpropertyrrr©rrrrs„Ø ò$óð$ó$ô$rrcó<—tj|d¬«ddk(S)NF)Ústrictrz    text/html)Ú    mimetypesÚ
guess_type)Úfile_urls rÚ _is_html_filer0.s€Ü × Ñ  °Ô 7¸Ñ :¸kÑ IÐIrcóD—eZdZdZdd„Zdd„Zed    d„«Zed
d„«Zy) Ú_FlatDirectoryToUrlsz"Scans directory and caches resultscóV—||_g|_tt«|_d|_y)NF)Ú_pathÚ_page_candidatesrÚlistÚ_project_name_to_urlsÚ_scanned_directory)rÚpaths  rÚ__init__z_FlatDirectoryToUrls.__init__5s&€ØˆŒ
Ø+-ˆÔÜ;FÄtÓ;LˆÔ"Ø"'ˆÕrcó²—tj|j«D]u}t|j«}t |«r|j j|«Œ?    t|j«d}|j|j|«Œwd|_y#t$r-    t|j«d}n#t$rYYŒ¯wxYwYŒ]wxYw)zrScans directory once and populates both page_candidates
        and project_name_to_urls at the same time
        rTN)ÚosÚscandirr4rr9r0r5Úappendr Únamerr
rr7r8)rÚentryÚurlÚproject_filenames    rÚ_scan_directoryz$_FlatDirectoryToUrls._scan_directory;sπô—Z‘Z §
¡
Ó+ò    EˆEܘeŸj™jÓ)ˆCܘSÔ!Ø×%Ñ%×,Ñ,¨SÔ1Øð Ü#7¸¿
¹
Ó#CÀAÑ#FРð × &Ñ &Ð'7Ñ 8× ?Ñ ?ÀÕ Dð!    Eð"#'ˆÕøô(ò ðÜ';¸E¿J¹JÓ'GÈÑ'JÑ$øÜ+òÚðúñ%ð ús6Á B      CÂ*CÃCà   Cà CÃCÃCÃCcóR—|js|j«|jS©N)r8rCr5rs rrz$_FlatDirectoryToUrls.page_candidatesRs#€à×&Ò&Ø ×  Ñ  Ô "à×$Ñ$Ð$rcóR—|js|j«|jSrE)r8rCr7rs rÚproject_name_to_urlsz)_FlatDirectoryToUrls.project_name_to_urlsYs#€à×&Ò&Ø ×  Ñ  Ô "à×)Ñ)Ð)rN)r9Ústrr!ÚNone)r!rI)r!z    list[str])r!zdict[str, list[str]])    r&r'r(Ú__doc__r:rCr)rrGr*rrr2r22s7„Ù,ó(ó 'ð.ò%óð%ð ò*óñ*rr2cóZ—eZdZUdZiZded<                                d    d„Zed
d„«Zd d„Z    d d„Z
y) Ú_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.
    zdict[str, _FlatDirectoryToUrls]Ú_paths_to_urlscó̗||_t|«|_||jvr|j||_yt |¬«|_|j|j|<y)N)r9)Ú_candidates_from_pager    Ú _project_namerMÚ _path_to_urlsr2)rÚcandidates_from_pager9Ú project_names    rr:z_FlatDirectorySource.__init__ls_€ð &:ˆÔ"Ü.¨|Ó<ˆÔð 4×&Ñ&Ñ &Ø!%×!4Ñ!4°TÑ!:ˆDÕ ä!5¸4Ô!@ˆDÔ Ø(,×(:Ñ(:ˆD× Ñ  Ò %rcó—yrEr*rs rrz_FlatDirectorySource.link|s€àrc#óŠK—|jjD]$}|jt|««Ed{–—†Œ&y7Œ­wrE)rQrrOr ©rrAs  rrz$_FlatDirectorySource.page_candidates€s<èø€Ø×%Ñ%×5Ñ5ò    =ˆCØ×1Ñ1´$°s³)Ó<× <Ñ <ñ    =Ø <ús‚7A¹AºAc#óvK—|jj|jD]}t|«–—Œy­wrE)rQrGrPr rVs  rrz_FlatDirectorySource.file_links„s5èø€Ø×%Ñ%×:Ñ:¸4×;MÑ;MÑNò    ˆCܐs“)‹Oñ    ùs‚79N)rRÚCandidatesFromPager9rHrSrHr!rIr r"r$) r&r'r(rJrMÚ__annotations__r:r)rrrr*rrrLrLas]…ñð79€NÐ3Ó8ð;à0ð;ðð;ðð    ;ð
 
ó ;ð òóðó=ôrrLcóF—eZdZdZ                        dd„Zedd„«Zd    d„Zd
d„Zy) Ú_LocalFileSourceaC``--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ó —||_||_yrE©rOÚ_link©rrRrs   rr:z_LocalFileSource.__init__“ó€ð
&:ˆÔ"؈
rcó—|jSrE©r^rs rrz_LocalFileSource.link›ó €àz‰zÐrc#ó–K—t|jj«sy|j|j«Ed{–—†y7Œ­wrE)r0r^rArOrs rrz _LocalFileSource.page_candidatesŸs1èø€Ü˜TŸZ™ZŸ^™^Ô,Ø Ø×-Ñ-¨d¯j©jÓ9×9Ò9ús‚?A    ÁAÁA    c#óhK—t|jj«ry|j–—y­wrE)r0r^rArs rrz_LocalFileSource.file_links¤s#èø€Ü ˜Ÿ™Ÿ™Ô (Ø Øj‰jÓùs‚02N©rRrXrr r!rIr r"r$©    r&r'r(rJr:r)rrrr*rrr[r[‰sF„ñðà0ðððð
ó    ðòóðó:ô
rr[cóJ—eZdZdZ                                dd„Zedd„«Zd    d„Zd
d„Zy) Ú_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ó.—||_||_||_yrE)rOÚ_page_validatorr^)rrRÚpage_validatorrs    rr:z_RemoteFileSource.__init__³s€ð &:ˆÔ"Ø-ˆÔ؈
rcó—|jSrErbrs rrz_RemoteFileSource.link½rcrc#óŽK—|j|j«sy|j|j«Ed{–—†y7Œ­wrE)rkr^rOrs rrz!_RemoteFileSource.page_candidatesÁs3èø€Ø×#Ñ# D§J¡JÔ/Ø Ø×-Ñ-¨d¯j©jÓ9×9Ò9ús‚;A½A¾Ac#ó(K—|j–—y­wrErbrs rrz_RemoteFileSource.file_linksÆsèø€Øj‰jÓùs‚N)rRrXrlÚ PageValidatorrr r!rIr r"r$rgr*rrririªsP„ñðà0ðð&ððð    ð
 
ó ðòóðó:ô
rricóF—eZdZdZ                        dd„Zedd„«Zd    d„Zd
d„Zy) Ú_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ó —||_||_yrEr]r_s   rr:z_IndexDirectorySource.__init__Ñr`rcó—|jSrErbrs rrz_IndexDirectorySource.linkÙrcrc#óVK—|j|j«Ed{–—†y7Œ­wrEr]rs rrz%_IndexDirectorySource.page_candidatesÝsèø€Ø×-Ñ-¨d¯j©jÓ9×9Ò9ús ‚)¡'¢)có—y)Nr*r*rs rrz _IndexDirectorySource.file_linksàs€ØrNrfr r"r$rgr*rrrrrrÊsF„ñð à0ðððð
ó    ðòóðó:ôrrrcóx—d}d}tjj|«rt|«}|}n,|j    d«r|}t |«}n t |«r|}|€d}tj||«y|€t||t||¬«¬«}    ||    fStjj|«r0|rt|||¬«}    ||    fSt|t||¬«¬«}    ||    fStjj|«rt|t||¬«¬«}    ||    fStjd|«|dfS)    Nzfile:zVLocation '%s' is ignored: it is either a non-existing path or lacks a specific scheme.)NN)Úcache_link_parsing)rRrlr)rRr9rS)rRrz?Location '%s' is ignored: it is neither a file nor a directory.)r<r9ÚexistsrÚ
startswithrrÚloggerÚwarningrir ÚisdirrLrrÚisfiler[)
ÚlocationrRrlÚ
expand_dirrxrSr9rAÚmsgÚsources
          rÚ build_sourcerƒäsP€ð€DØ€CÜ    ‡ww‡~~hÔܘ(Ó#ˆØ‰Ø    ×    Ñ    ˜WÔ    %؈ܘ8Ó$‰Ü    Ô    Øˆà
€{ð Kð     ô    ‰s˜HÔ%Øà €|Ü.Ø!5Ø)ܐcÐ.@ÔAô
ˆð
Vˆ}Ðä    ‡ww‡}}TÔÙ Ü)Ø%9ØØ)ôˆFðVˆ}Ðô    +Ø%9ܘ#Ð2DÔEôˆFðVˆ}ÐÜ     ‰‰˜Ô    Ü!Ø!5ܐcÐ.@ÔAô
ˆðVˆ}ÐÜ
‡NNØIØô𠐈;Ðr)r/rHr!Úbool)rrHrRrXrlrpr€r„rxr„rSrHr!z$tuple[str | None, LinkSource | None])*Ú
__future__rÚloggingr-r<Ú collectionsrÚcollections.abcrÚtypingrÚpip._vendor.packaging.utilsrrr    r
r Úpip._internal.models.candidater Úpip._internal.models.linkr Úpip._internal.utils.urlsrrÚpip._internal.vcsrÚ    getLoggerr&r{r#r%rXr„rprr0r2rLr[rirrrƒr*rrú<module>rsðÝ"ãÛÛ    Ý#Ý$Ý÷õõAÝ*ß=Ý$à    ˆ×    Ñ    ˜8Ó    $€àÐ0Ñ1€Ø d‰^€
ؘt˜f hÐ/DÑ&EÐEÑFÐØ˜$˜ ˜Ñ&€ ÷ $ñ $óJ÷,*ñ,*ô^%˜:ô%ôPzôôB˜
ôô@˜Jôð4;Øð;ð-ð;ð"ð    ;ð
ð ;ð ð ;ðð;ð*ô;r