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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
Ë
ñúhðNãó—ddlmZddlZddlZddlmZddlmZmZm    Z    m
Z
ddl m Z ddl mZmZddlmZddlmZmZmZmZmZdd    lmZdd
lmZmZdd lmZdd lm Z m!Z!dd l"m#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)m*Z*m+Z+erddl,m-Z-ej\e/«Z0e    dZ1e
ed«Z2d%d„Z3                        d&d„Z4                        d&d„Z5                        d'd„Z6Gd„de)«Z7Gd„de7«Z8Gd„de7«Z9Gd„d e)«Z:Gd!„d"e)«Z;Gd#„d$e)«Z<y)(é)Ú annotationsN)ÚIterable)Ú TYPE_CHECKINGÚAnyÚUnionÚcast)ÚInvalidRequirement)ÚNormalizedNameÚcanonicalize_name)ÚVersion)Ú    HashErrorÚInstallationSubprocessErrorÚInvalidInstalledPackageÚMetadataInconsistentÚMetadataInvalid)ÚBaseDistribution)ÚLinkÚlinks_equivalent)ÚWheel)Úinstall_req_from_editableÚinstall_req_from_line)ÚInstallRequirement)Údirect_url_from_link)Únormalize_version_infoé)Ú    CandidateÚ RequirementÚ format_name)ÚFactory)ÚAlreadyInstalledCandidateÚEditableCandidateÚ LinkCandidatez<Python from Requires-Python>cóB—tttf}t||«r|Sy)z%The runtime version of BaseCandidate.N)r r!r"Ú
isinstance)Ú    candidateÚbase_candidate_classess  úaH:\Change_password\venv_build\Lib\site-packages\pip/_internal/resolution/resolvelib/candidates.pyÚas_base_candidater(/s+€ô    "ÜÜðÐô
)Ð3Ô4ØÐØ óc ó¢—|jrJd«‚|jrt|j«}n |j}t    ||j
|j |j|j|j|j|j|j¬«    }|j|_ ||_|j|_|S)Nztemplate is editable©Ú user_suppliedÚ
comes_fromÚ
use_pep517ÚisolatedÚ
constraintÚglobal_optionsÚ hash_optionsÚconfig_settings)ÚeditableÚreqÚstrÚurlrr,r-r.r/r0r1r2r3Ú original_linkÚlinkÚextras)r9ÚtemplateÚlineÚireqs    r'Úmake_install_req_from_linkr>;s³€ð× Ò Ð8Ð"8Ó8Ð  Ø‡|‚|ܐ8—<‘<Ó ‰àx‰xˆÜ  Ø Ø×,Ñ,Ø×&Ñ&Ø×&Ñ&Ø×"Ñ"Ø×&Ñ&Ø×.Ñ.Ø×*Ñ*Ø ×0Ñ0ô
€Dð"×/Ñ/€DÔØ€D„IØ—/‘/€D„KØ €Kr)c ó@—|jsJd«‚t|j|j|j|j
|j |j|j|j|j|j¬«
}|j|_ |S)Nztemplate not editable)    r,r-r.r/r0Úpermit_editable_wheelsr1r2r3) r4rr7r,r-r.r/r0r@r1r2r3r:)r9r;r=s   r'Úmake_install_req_from_editablerATs€ð × Ò Ð5Ð5Ó5Ð Ü $Ø ‰Ø×,Ñ,Ø×&Ñ&Ø×&Ñ&Ø×"Ñ"Ø×&Ñ&Ø'×>Ñ>Ø×.Ñ.Ø×*Ñ*Ø ×0Ñ0ô €Dð—/‘/€D„KØ €Kr)c óº—|jrt|j«}nM|jr&|j›d|jj›}n|j›d|j
›}t ||j|j|j|j|j|j|j|j¬«    }||_|S)Nz @ z==r+)r5r6r9Úcanonical_namer7Úversionrr,r-r.r/r0r1r2r3Ú satisfied_by)Údistr;r<r=s    r'Ú_make_install_req_from_distrGhsÁ€ð‡|‚|ܐ8—<‘<Ó ‰Ø    ŠØ×%Ñ%Ð& c¨(¯-©-×*;Ñ*;Ð)<Ð=‰à×%Ñ%Ð& b¨¯©¨Ð7ˆÜ  Ø Ø×,Ñ,Ø×&Ñ&Ø×&Ñ&Ø×"Ñ"Ø×&Ñ&Ø×.Ñ.Ø×*Ñ*Ø ×0Ñ0ô
€Dð€DÔØ €Kr)cóà—eZdZUdZded<dZ        d                                                    dd„Zdd„Zdd„Zdd    „Z    dd
„Z
e dd „«Z e dd „«Z e dd „«Ze dd„«Zdd„Zdd„Zdd„Zdd„Zdd„Zd d„Zy)!Ú"_InstallRequirementBackedCandidatea÷A candidate backed by an ``InstallRequirement``.
 
    This represents a package request with the target not being already
    in the environment, and needs to be fetched and installed. The backing
    ``InstallRequirement`` is responsible for most of the leg work; this
    class exposes appropriate information to the resolver.
 
    :param link: The link passed to the ``InstallRequirement``. The backing
        ``InstallRequirement`` will use this link to fetch the distribution.
    :param source_link: The link this candidate "originates" from. This is
        different from ``link`` when the link is found in the wheel cache.
        ``link`` would point to the wheel cache, while this points to the
        found remote link (e.g. from pypi.org).
    rrFFNcó—||_||_||_||_||_||_|j «|_d|_y©N)    Ú_linkÚ _source_linkÚ_factoryÚ_ireqÚ_nameÚ_versionÚ_preparerFÚ_hash)Úselfr9Ú source_linkr=ÚfactoryÚnamerDs       r'Ú__init__z+_InstallRequirementBackedCandidate.__init__“sC€ðˆŒ
Ø'ˆÔ؈Œ ؈Œ
؈Œ
؈Œ Ø—M‘M“OˆŒ    Ø!%ˆ
r)có8—|j›d|j›S)Nú ©rWrD©rTs r'Ú__str__z*_InstallRequirementBackedCandidate.__str__¥s€Ø—)‘)˜A˜dŸl™l˜^Ð,Ð,r)có`—|jj›dt|j«›dS©Nú(ú))Ú    __class__Ú__name__r6rLr\s r'Ú__repr__z+_InstallRequirementBackedCandidate.__repr__¨s)€Ø—.‘.×)Ñ)Ð*¨!¬C°·
±
«OÐ+>¸aÐ@Ð@r)có–—|j |jSt|j|jf«|_|jSrK)rSÚhashrbrLr\s r'Ú__hash__z+_InstallRequirementBackedCandidate.__hash__«s9€Ø :‰:Ð !Ø—:‘:Ð ä˜4Ÿ>™>¨4¯:©:Ð6Ó7ˆŒ
؏z‰zÐr)cóp—t||j«r t|j|j«Sy©NF)r$rbrrL©rTÚothers  r'Ú__eq__z)_InstallRequirementBackedCandidate.__eq__²s(€Ü e˜TŸ^™^Ô ,Ü# D§J¡J°· ± Ó<Ð <Ør)có—|jSrK)rMr\s r'rUz._InstallRequirementBackedCandidate.source_link·ó€àנѠРr)cóh—|j€|jj|_|jS©z:The normalised name of the project the candidate refers to)rPrFrCr\s r'Ú project_namez/_InstallRequirementBackedCandidate.project_name»s)€ð :‰:Ð ØŸ™×1Ñ1ˆDŒJ؏z‰zÐr)có—|jSrK©rqr\s r'rWz'_InstallRequirementBackedCandidate.nameÂrnr)cóh—|j€|jj|_|jSrK©rQrFrDr\s r'rDz*_InstallRequirementBackedCandidate.versionÆó'€à =‰=Ð  Ø ŸI™I×-Ñ-ˆDŒM؏}‰}Ðr)có²—|j›d|j›d|jjr|jj›dS|j›dS)NrZz (from ra)rWrDrLÚis_fileÚ    file_pathr\s r'Úformat_for_errorz3_InstallRequirementBackedCandidate.format_for_errorÌs\€ày‰yˆk˜˜4Ÿ<™<˜.ð)Ø-1¯Z©Z×-?Ò-?T—Z‘Z×)Ñ)ÐPÐPQð Sð    
àEIÇZÁZÐPÐPQð Sð    
r)có—td«‚)NzOverride in subclass)ÚNotImplementedErrorr\s r'Ú_prepare_distributionz8_InstallRequirementBackedCandidate._prepare_distributionÒs€Ü!Ð"8Ó9Ð9r)có0—|jE|j|jk7r,t|jd|j|j«‚|jW|j|j
k7r>t|jdt |j«t |j
««‚    t|jt|j««««y#t$r$}t|jt |««‚d}~wwxYw)z:Check for consistency of project name and version of dist.NrWrD) rPrCrrOrQrDr6ÚlistÚiter_dependenciesÚiter_provided_extrasr    r)rTrFÚes   r'Ú_check_metadata_consistencyz>_InstallRequirementBackedCandidate._check_metadata_consistencyÕsـà :‰:Ð ! d§j¡j°D×4GÑ4GÒ&GÜ&Ø—
‘
ØØ—
‘
Ø×#Ñ#ó    ð ð =‰=Ð $¨¯©¸$¿,¹,Ò)FÜ&Ø—
‘
ØÜD—M‘MÓ"ܐD—L‘LÓ!ó    ð ð    6Ü ×'Ñ'¬¨T×-FÑ-FÓ-HÓ(IÓJÕ KøÜ!ò    6Ü! $§*¡*¬c°!«fÓ5Ð 5ûð    6úsÂ61C(Ã(    DÃ1DÄDc󸗠   |j«}|j |«|S#t$r}|j|_‚d}~wt$r }d|_‚d}~wwxYw)NzSee above for output.)r}r rOr5rÚcontextrƒ)rTrFr‚Úexcs    r'rRz+_InstallRequirementBackedCandidate._prepareís_€ð     Ø×-Ñ-Ó/ˆDð     ×(Ñ(¨Ô.؈ øôò    ð—J‘JˆAŒEØ ûÜ*ò    à1ˆCŒKØ ûð    ús ‚%¥    A®AÁ AÁ AÁAc#ó*K—|jj|jj«–—|r|jj    «nd}|D]9}|jj t |«|j«Ed{–—†Œ;y7Œ­w©N©)rNÚ make_requires_python_requirementrFÚrequires_pythonr€Úmake_requirements_from_specr6rO)rTÚ with_requiresÚrequiresÚrs    r'r€z4_InstallRequirementBackedCandidate.iter_dependenciesþssèø€ðm‰m×<Ñ<¸T¿Y¹Y×=VÑ=VÓWÒWÙ4A4—9‘9×.Ñ.Ô0ÀrˆØò    UˆAØ—}‘}×@Ñ@ÄÀQÃÈÏÉÓT× TÑ Tñ    UØ Tús‚BB    BÂ
Bcó—|jSrK)rOr\s r'Úget_install_requirementz:_InstallRequirementBackedCandidate.get_install_requirements €Øz‰zÐr)©NN)r9rrUrr=rrVrrWúNormalizedName | NonerDúVersion | NoneÚreturnÚNone©r•r6©r•Úint©rkrr•Úbool©r•z Link | None©r•r
©r•r ©r•r)rFrr•r–©rr›r•zIterable[Requirement | None]©r•úInstallRequirement | None)rcÚ
__module__Ú __qualname__Ú__doc__Ú__annotations__Ú is_installedrXr]rdrgrlÚpropertyrUrqrWrDrzr}rƒrRr€r‘r‰r)r'rIrI€sé…ñ ð ÓØ€Lð'+Ø"&ð&àð&ðð&ð!ð    &ð
ð &ð $ð &ð ð&ð
ó&ó$-óAóóð
ò!óð!ðòóðð ò!óð!ðòóðó
 
ó :ó6ó0ó"Uôr)rIcóH‡—eZdZdZ        d                                            dˆfd„ Zdd„ZˆxZS)r"FcóV•—|}|j||«}|,tjd|j«|j}t    ||«}|j|k(sJ‚|jj
r‡|jj sqt|jj«}    t|    j«}
||
k(s J|›d|
›d«‚|)t|    j«} || k(sJ|›d| ›d|›«‚|•|jj
sJ‚|jj sJ‚|jr|j|jur||_|j |j |_nt%||j¬«|_t&‰ |Q||||||¬«y)NzUsing cached wheel link: %sz != z
 for wheelz  for wheel )Úlink_is_in_wheel_cache©r9rUr=rVrWrD)Úget_wheel_cache_entryÚloggerÚdebugr9r>Úis_wheelrxrÚfilenamer rWr rDÚ
persistentr8Úcached_wheel_source_linkÚoriginÚ download_inforÚsuperrX) rTr9r;rVrWrDrUÚ cache_entryr=ÚwheelÚ
wheel_nameÚ wheel_versionrbs             €r'rXzLinkCandidate.__init__ s¥ø€ðˆ Ø×3Ñ3°KÀÓFˆ Ø Ð "Ü L‰LÐ6¸ ×8HÑ8HÔ IØ×#Ñ#ˆDÜ)¨$°Ó9ˆØy‰y˜DÒ Ð Ð Ø 9‰9× Ò  d§i¡i×&7Ò&7ܘ$Ÿ)™)×,Ñ,Ó-ˆEÜ*¨5¯:©:Ó6ˆJؘ:Ò%Ð N¨$¨°°j°^À:Ð'NÓ NÐ%àÐ"Ü '¨¯ © Ó 6 à˜}Ò,ðHà[  ]Ð$5°[ÀÀÐGóHØ,ð Ð "Ø—9‘9×%Ò%Ð %Ð%Ø—9‘9×$Ò$Ð $Ð$Ø×%Ò%¨(¯-©-¸8×;QÑ;QÑ*QØ0;Ô-Ø×!Ñ!Ð-Ø%0×%7Ñ%7Õ"ô&:ظ ×8NÑ8Nô&Ô"ô    ‰ÑØØ#ØØØØð     õ    
r)cóh—|jj}|j|jd¬«S)NT)Úparallel_builds)rNÚpreparerÚprepare_linked_requirementrO)rTr½s  r'r}z#LinkCandidate._prepare_distribution>s+€Ø—=‘=×)Ñ)ˆØ×2Ñ2°4·:±:ÈtÐ2ÓTÐTr)r’© r9rr;rrVrrWr“rDr”r•r–rŸ©rcr£r¤Ú is_editablerXr}Ú __classcell__©rbs@r'r"r"
sVø„Ø€Kð'+Ø"&ð /
àð/
ð%ð/
ðð    /
ð
$ð /
ð  ð /
ð
õ/
÷bUr)r"cóH‡—eZdZdZ        d                                            dˆfd„ Zdd„ZˆxZS)r!TcóD•—t‰|||t||«|||¬«y)Nr¬)r¶rXrA)rTr9r;rVrWrDrbs      €r'rXzEditableCandidate.__init__Fs0ø€ô    ‰ÑØØÜ/°°hÓ?ØØØð     õ    
r)có`—|jjj|j«SrK)rNr½Úprepare_editable_requirementrOr\s r'r}z'EditableCandidate._prepare_distributionWs!€Ø}‰}×%Ñ%×BÑBÀ4Ç:Á:ÓNÐNr)r’r¿rŸrÀrÃs@r'r!r!CsUø„Ø€Kð'+Ø"&ð 
àð
ð%ð
ðð    
ð
$ð 
ð  ð 
ð
õ
÷"Or)r!có¬—eZdZdZdZ                                dd„Zdd„Zdd„Zdd„Zdd„Z    e
dd„«Z e
dd    „«Z e
dd
„«Z e
dd „«Zdd „Zdd „Zdd„Zy)r TNcó —||_t||«|_||_d|_d}|j
j |j|«y)Nzalready satisfied)rFrGrOrNrQr½Úprepare_installed_requirement)rTrFr;rVÚ skip_reasons     r'rXz"AlreadyInstalledCandidate.__init___sH€ð ˆŒ    Ü0°°xÓ@ˆŒ
؈Œ ؈Œ ð *ˆ Ø×Ñ×6Ñ6°t·z±zÀ;ÕOr)có,—t|j«SrK)r6rFr\s r'r]z!AlreadyInstalledCandidate.__str__qs€Ü4—9‘9‹~Ðr)cóN—|jj›d|j›dSr_)rbrcrFr\s r'rdz"AlreadyInstalledCandidate.__repr__ts$€Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I¨=¸Ð:Ð:r)có–—t|t«stS|j|jk(xr|j|jk(SrK)r$r ÚNotImplementedrWrDrjs  r'rlz AlreadyInstalledCandidate.__eq__ws8€Ü˜%Ô!:Ô;Ü!Ð !؏y‰y˜EŸJ™JÑ&ÒH¨4¯<©<¸5¿=¹=Ñ+HÐHr)cóD—t|j|jf«SrK)rfrWrDr\s r'rgz"AlreadyInstalledCandidate.__hash__|s€ÜT—Y‘Y § ¡ Ð-Ó.Ð.r)có.—|jjSrK)rFrCr\s r'rqz&AlreadyInstalledCandidate.project_names€ày‰y×'Ñ'Ð'r)có—|jSrKrsr\s r'rWzAlreadyInstalledCandidate.nameƒrnr)cóh—|j€|jj|_|jSrKrur\s r'rDz!AlreadyInstalledCandidate.version‡rvr)có.—|jjSrK)rFr4r\s r'rÁz%AlreadyInstalledCandidate.is_editables€ày‰y×!Ñ!Ð!r)có:—|j›d|j›dS)NrZz  (Installed)r[r\s r'rzz*AlreadyInstalledCandidate.format_for_error‘s€Ø—)‘)˜A˜dŸl™l˜^¨<Ð8Ð8r)c#óK—|sy    |jj«D]9}|jjt    |«|j
«Ed{–—†Œ;y7Œ#t $r}t|j|¬«d‚d}~wwxYw­w)N)rFÚ invalid_exc)rFr€rNrŒr6rOr    r)rTrrr†s    r'r€z+AlreadyInstalledCandidate.iter_dependencies”szèø€ÙØ ð    UØ—Y‘Y×0Ñ0Ó2ò YØŸ=™=×DÑDÄSÈÃVÈTÏZÉZÓX×XÑXñ YØXùÜ!ò    UÜ)¨t¯y©yÀcÔJÐPTÐ Tûð    Uüs;‚B    ‡AA ÁAÁA ÁB    ÁA Á     BÁ)BÂBÂB    có—yrKr‰r\s r'r‘z1AlreadyInstalledCandidate.get_install_requirementžó€Ør))rFrr;rrVrr•r–r—)rkÚobjectr•r›r˜rrž©r•r›r r¡)rcr£r¤r§rUrXr]rdrlrgr¨rqrWrDrÁrzr€r‘r‰r)r'r r [s±„Ø€LØ€KðPàðPð%ðPðð    Pð
 
ó Pó$ó;óIó
/ðò(óð(ðò!óð!ðòóðð
ò"óð"ó9óUôr)r cóЗeZdZdZddœ                            dd„Zdd„Zdd„Zdd„Zdd„Ze    dd    „«Z
e    dd
„«Z e    dd „«Z dd „Z e    dd „«Ze    dd„«Ze    dd„«Zdd„Zdd„Zy)ÚExtrasCandidateaíA candidate that has 'extras', indicating additional dependencies.
 
    Requirements can be for a project with dependencies, something like
    foo[extra].  The extras don't affect the project/version being installed
    directly, but indicate that we need additional dependencies. We model that
    by having an artificial ExtrasCandidate that wraps the "base" candidate.
 
    The ExtrasCandidate differs from the base in the following ways:
 
    1. It has a unique name, of the form foo[extra]. This causes the resolver
       to treat it as a separate node in the dependency graph.
    2. When we're getting the candidate's dependencies,
       a) We specify that we want the extra dependencies as well.
       b) We add a dependency on the base candidate.
          See below for why this is needed.
    3. We return None for the underlying InstallRequirement, as the base
       candidate will provide it, and we don't want to end up with duplicates.
 
    The dependency on the base candidate is needed so that the resolver can't
    decide that it should recommend foo[extra1] version 1.0 and foo[extra2]
    version 2.0. Having those candidates depend on foo=1.0 and foo=2.0
    respectively forces the resolver to recognise that this is a conflict.
    N)r-cóŠ—||_td„|D««|_|||_y|jj|_y)a¿
        :param comes_from: the InstallRequirement that led to this candidate if it
            differs from the base's InstallRequirement. This will often be the
            case in the sense that this candidate's requirement has the extras
            while the base's does not. Unlike the InstallRequirement backed
            candidates, this requirement is used solely for reporting purposes,
            it does not do any leg work.
        c3ó2K—|]}t|«–—Œy­wrK)r )Ú.0r‚s  r'ú    <genexpr>z+ExtrasCandidate.__init__.<locals>.<genexpr>Ësèø€ÒE¸Ô 1°!× 4ÑEùó‚N)ÚbaseÚ    frozensetr:rOÚ _comes_from)rTrãr:r-s    r'rXzExtrasCandidate.__init__»s9€ðˆŒ    ÜÑE¸fÔEÓEˆŒ Ø)3Ð)?˜:ˆÕÀTÇYÁYÇ_Á_ˆÕr)cóª—t|j«jdd«\}}dj|dj    |j
«|«S)NrZrz    {}[{}] {}ú,)r6rãÚsplitÚformatÚjoinr:)rTrWÚrests   r'r]zExtrasCandidate.__str__ÎsB€Ü˜Ÿ™“^×)Ñ)¨#¨qÓ1‰
ˆˆdØ×!Ñ! $¨¯©°·±Ó(=¸tÓDÐDr)cóh—|jj›d|j›d|j›dS)Nz(base=z    , extras=ra)rbrcrãr:r\s r'rdzExtrasCandidate.__repr__Òs/€Ø—.‘.×)Ñ)Ð*¨&°·±° ¸YÀtÇ{Á{ÀoÐUVÐWÐWr)cóD—t|j|jf«SrK)rfrãr:r\s r'rgzExtrasCandidate.__hash__Õs€ÜT—Y‘Y § ¡ Ð,Ó-Ð-r)có˜—t||j«r4|j|jk(xr|j|jk(Syri)r$rbrãr:rjs  r'rlzExtrasCandidate.__eq__Øs8€Ü e˜TŸ^™^Ô ,Ø—9‘9 §
¡
Ñ*ÒJ¨t¯{©{¸e¿l¹lÑ/JÐ JØr)có.—|jjSrK)rãrqr\s r'rqzExtrasCandidate.project_nameÝó€ày‰y×%Ñ%Ð%r)cóV—t|jj|j«Srp)rrãrqr:r\s r'rWzExtrasCandidate.nameás€ô˜4Ÿ9™9×1Ñ1°4·;±;Ó?Ð?r)có.—|jjSrK)rãrDr\s r'rDzExtrasCandidate.versionæs€ày‰yנѠРr)cóš—dj|jj«djt    |j
«««S)Nz{} [{}]z, )rérãrzrêÚsortedr:r\s r'rzz ExtrasCandidate.format_for_errorês9€Ø×ÑØ I‰I× &Ñ &Ó (¨$¯)©)´F¸4¿;¹;Ó4GÓ*Hó
ð    
r)có.—|jjSrK)rãr§r\s r'r§zExtrasCandidate.is_installedïrðr)có.—|jjSrK)rãrÁr\s r'rÁzExtrasCandidate.is_editableóó€ày‰y×$Ñ$Ð$r)có.—|jjSrK)rãrUr\s r'rUzExtrasCandidate.source_link÷r÷r)c#ó¬K—|jj}|j|j«–—|sy|jj    |jj
j ««}|jj|jj
j ««}t|«D]8}tjd|jj|j|«Œ:|jj
j|«D]0}|jt|«|j |«Ed{–—†Œ2y7Œ­w)Nz%%s %s does not provide the extra '%s')rãrNÚmake_requirement_from_candidater:Ú intersectionrFrÚ
differencerôr®ÚwarningrWrDr€rŒr6rå)rTrrVÚ valid_extrasÚinvalid_extrasÚextrars       r'r€z!ExtrasCandidate.iter_dependenciesûs
èø€Ø—)‘)×$Ñ$ˆð×5Ñ5°d·i±iÓ@Ò@ÙØ ð—{‘{×/Ñ/°·    ±    ·±×0SÑ0SÓ0UÓVˆ ØŸ™×/Ñ/°·    ±    ·±×0SÑ0SÓ0UÓVˆÜ˜NÓ+ò    ˆEÜ N‰NØ7Ø—    ‘    —‘Ø— ‘ Øõ     ð    ð—‘—‘×1Ñ1°,Ó?ò    ˆAØ×:Ñ:ܐA“Ø× Ñ Øó÷ ñ ñ    ð ús‚EEÅ
EÅ Ecó—yrKr‰r\s r'r‘z'ExtrasCandidate.get_install_requirements€ðr))rãÚ BaseCandidater:zfrozenset[str]r-r¢r•r–r—r˜ršrržrÛrœr r¡)rcr£r¤r¥rXr]rdrgrlr¨rqrWrDrzr§rÁrUr€r‘r‰r)r'rÝrÝ¢sۄñð:15ñ UàðUððUð
.ð Uð
ó Uó&EóXó.óð
ò&óð&ðò@óð@ðò!óð!ó
ð
ò&óð&ðò%óð%ðò%óð%óô8r)rÝcóz—eZdZdZdZd d„Zd d„Zd d„Zedd„«Z    ed d„«Z
edd„«Z d d    „Z dd
„Z dd „Zy)ÚRequiresPythonCandidateFNcó’—| t|«}ntjdd}tdj    d„|D«««|_y)Néú.c3ó2K—|]}t|«–—Œy­wrK)r6)ràÚcs  r'ráz3RequiresPythonCandidate.__init__.<locals>.<genexpr>'sèø€Ò(F°A¬¨Q¯Ñ(Fùrâ)rÚsysÚ version_infor rêrQ)rTÚpy_version_infor s   r'rXz RequiresPythonCandidate.__init__"s?€Ø Ð &Ü1°/ÓB‰Lä×+Ñ+¨B¨QÐ/ˆLÜ §¡Ñ(F¸Ô(FÓ FÓGˆ r)có —d|j›S©NzPython ©rQr\s r'r]zRequiresPythonCandidate.__str__-s€Ø˜Ÿ™˜Ð(Ð(r)cóN—|jj›d|j›dSr_)rbrcrQr\s r'rdz RequiresPythonCandidate.__repr__0s%€Ø—.‘.×)Ñ)Ð*¨!¨D¯M©MÐ+<¸AÐ>Ð>r)có—tSrK©ÚREQUIRES_PYTHON_IDENTIFIERr\s r'rqz$RequiresPythonCandidate.project_name3ó€ä)Ð)r)có—tSrKrr\s r'rWzRequiresPythonCandidate.name7rr)có—|jSrKrr\s r'rDzRequiresPythonCandidate.version;s €à}‰}Ðr)có —d|j›Sr)rDr\s r'rzz(RequiresPythonCandidate.format_for_error?s€Ø˜Ÿ™˜Ð'Ð'r)có—yrˆr‰)rTrs  r'r€z)RequiresPythonCandidate.iter_dependenciesBs€Ør)có—yrKr‰r\s r'r‘z/RequiresPythonCandidate.get_install_requirementErÙr))r ztuple[int, ...] | Noner•r–r—rržr r¡)rcr£r¤r§rUrXr]rdr¨rqrWrDrzr€r‘r‰r)r'rrsg„Ø€LØ€KóHó)ó?ðò*óð*ðò*óð*ðòóðó(óôr)r)r%rr•zBaseCandidate | None)r9rr;rr•r)rFrr;rr•r)=Ú
__future__rÚloggingr
Úcollections.abcrÚtypingrrrrÚ"pip._vendor.packaging.requirementsr    Úpip._vendor.packaging.utilsr
r Úpip._vendor.packaging.versionr Úpip._internal.exceptionsr rrrrÚpip._internal.metadatarÚpip._internal.models.linkrrÚpip._internal.models.wheelrÚpip._internal.req.constructorsrrÚpip._internal.req.req_installrÚ&pip._internal.utils.direct_url_helpersrÚpip._internal.utils.miscrrãrrrrVrÚ    getLoggerrcr®rrr(r>rArGrIr"r!r rÝrr‰r)r'ú<module>r*s6ðÝ"ãÛ
Ý$ß2Ó2åAßIÝ1÷õõ4ß<Ý,÷õ=ÝGÝ;ç5Ñ5áÝ à    ˆ×    Ñ    ˜8Ó    $€àðñ€ ñ" .Ð2QÓRÐó    ðØ
ðØ,ðàóð2Ø
ðØ,ðàóð(Ø
ðØ&8ðàóô0G¨ôGôT6UÐ6ô6UôrOÐ:ôOô0D     ôDôNyiôyôx(˜iõ(r)