hyb
2025-12-30 5e753a15ff53faab2261a53367e44d38caf87041
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
Ë
ñúhˆ+ãó*—ddlmZddlZddlmZmZmZmZddlm    Z    ddl
m Z m Z ddl mZddlmZdd    lmZmZmZdd
lmZdd lmZdd lmZe rdd l mZddlmZeeefZeeeefZ neZ e d«Z!e d«Z"                                dd„Z#Gd„de «Z$y)é)Ú annotationsN)ÚIterableÚIteratorÚMappingÚSequence)Úcache)Ú TYPE_CHECKINGÚTypeVar)ÚAbstractProvider)ÚInstallRequirementé)Ú    CandidateÚ
ConstraintÚ Requirement)ÚREQUIRES_PYTHON_IDENTIFIER)ÚFactory)ÚExplicitRequirement)Ú
Preference)ÚRequirementInformationÚDÚVcóX—||vr||S|jd«\}}}|r    ||vr||S|S)aiGet item from a package name lookup mapping with a resolver identifier.
 
    This extra logic is needed when the target mapping is keyed by package
    name, which cannot be directly looked up with an identifier (which may
    contain requested extras). Additional logic is added to also look up a value
    by "cleaning up" the extras from the identifier.
    ú[)Ú    partition)ÚmappingÚ
identifierÚdefaultÚnameÚ open_bracketÚ_s      ú_H:\Change_password\venv_build\Lib\site-packages\pip/_internal/resolution/resolvelib/provider.pyÚ_get_with_identifierr"5sH€ðWÑØzÑ"Ð"ð '×0Ñ0°Ó5Ñ€Dˆ,˜Ù˜ ™Øt‰}ÐØ €Nócó´—eZdZdZ                                                d
d„Zd d„Z                                                d d„Z                                                d d„Z                                dd„Ze    e
dd„««Z dd„Z y    )Ú PipProvidera´Pip's provider implementation for resolvelib.
 
    :params constraints: A mapping of constraints specified by the user. Keys
        are canonicalized project names.
    :params ignore_dependencies: Whether the user specified ``--no-deps``.
    :params upgrade_strategy: The user-specified upgrade strategy.
    :params user_requested: A set of canonicalized package names that the user
        supplied for pip to install/upgrade.
    cóJ—||_||_||_||_||_y©N)Ú_factoryÚ _constraintsÚ_ignore_dependenciesÚ_upgrade_strategyÚ_user_requested)ÚselfÚfactoryÚ constraintsÚignore_dependenciesÚupgrade_strategyÚuser_requesteds      r!Ú__init__zPipProvider.__init__Ys+€ð ˆŒ Ø'ˆÔØ$7ˆÔ!Ø!1ˆÔØ-ˆÕr#có—|jSr')r)r-Úrequirement_or_candidates  r!ÚidentifyzPipProvider.identifygs€Ø'×,Ñ,Ð,r#có8—t«}|D]Y}|j|jj«|j€Œ5|j|jj«Œ[g}|D]&}    |    t
k(r|    gcS|    |vsŒ|j |    «Œ(|r|S|S)aProduce a subset of identifiers that should be considered before others.
 
        Currently pip narrows the following selection:
            * Requires-Python, if present is always returned by itself
            * Backtrack causes are considered next because they can be identified
              in linear time here, whereas because get_preference() is called
              for each identifier, it would be quadratic to check for them there.
              Further, the current backtrack causes likely need to be resolved
              before other requirements as a resolution can't be found while
              there is a conflict.
        )ÚsetÚaddÚ requirementrÚparentrÚappend)
r-Ú identifiersÚ resolutionsÚ
candidatesÚ informationÚbacktrack_causesÚbacktrack_identifiersÚinfoÚcurrent_backtrack_causesrs
          r!Únarrow_requirement_selectionz(PipProvider.narrow_requirement_selectionjs®€ô&!$£ÐØ$ò    <ˆDØ !× %Ñ % d×&6Ñ&6×&;Ñ&;Ô <؏{‰{Ñ&Ø%×)Ñ)¨$¯+©+×*:Ñ*:Õ;ð    <ð
$&РØ%ò
    ˆJðÔ7Ò7Ø"|Ò#ðÐ2Ò2Ø(×/Ñ/°
Ô;Øð
    ñ $Ø+Ð +àÐr#cóæ—    tt||««d}|sd}d}n td„||D«Ž\}    }t    |    «}d„|D«D
 cgc]!}
|
D]} | j
| j f‘ŒŒ#} }
} t    d„| D««} t    d„| D««}t| «}|jj|tj«}| | | || |fS#t$rd}YŒÎwxYwcc} }
w)a~Produce a sort key for given requirement based on preference.
 
        The lower the return value is, the more preferred this group of
        arguments is.
 
        Currently pip considers the following in order:
 
        * Any requirement that is "direct", e.g., points to an explicit URL.
        * Any requirement that is "pinned", i.e., contains the operator ``===``
          or ``==`` without a wildcard.
        * Any requirement that imposes an upper version limit, i.e., contains the
          operator ``<``, ``<=``, ``~=``, or ``==`` with a wildcard. Because
          pip prioritizes the latest version, preferring explicit upper bounds
          can rule out infeasible candidates sooner. This does not imply that
          upper bounds are good practice; they can make dependency management
          and resolution harder.
        * Order user-specified requirements as they are specified, placing
          other requirements afterward.
        * Any "non-free" requirement, i.e., one that contains at least one
          operator, such as ``>=`` or ``!=``.
        * Alphabetical order for consistency (aids debuggability).
        TF©c3óhK—|]*\}}t|t«|j«df–—Œ,y­w)r N)Ú
isinstancerÚget_candidate_lookup)Ú.0Úrr s   r!ú    <genexpr>z-PipProvider.get_preference.<locals>.<genexpr>Äs8èø€òᘘ1ô  Ô#6Ó7¸×9OÑ9OÓ9QÐRSÑ9TÔUñùs‚02c3ó:K—|]}|sŒ|j–—Œy­wr')Ú    specifier)rKÚireqs  r!rMz-PipProvider.get_preference.<locals>.<genexpr>Ísèø€Ò!K°TÂd $§.¥.Ñ!Kùs‚Šc3ó>K—|]\}}|dddk(xrd|v–—Œy­w)Néú==Ú*rG©rKÚopÚvers   r!rMz-PipProvider.get_preference.<locals>.<genexpr>Ñs*èø€ÒVÁÀÀSr˜"˜1v ‘~Ò;¨C°s¨NÓ;ÑVùs‚c3óDK—|]\}}|dvxs |dk(xrd|v–—Œy­w))ú<z<=z~=rSrTNrGrUs   r!rMz-PipProvider.get_preference.<locals>.<genexpr>Òs7èø€ò
ᐐCðÐ%Ð%Ò E¨2°©:Ò+D¸#À¸*Ó Eñ
ùs‚ ) ÚnextÚiterÚ StopIterationÚzipÚanyÚoperatorÚversionÚboolr,ÚgetÚmathÚinf)r-rr>r?r@rAÚhas_informationÚdirectÚireqsÚdirectsÚ specifier_setrOÚ    operatorsÚpinnedÚ upper_boundedÚunfreeÚrequested_orders                 r!Úget_preferencezPipProvider.get_preference•s9€ð<    #Ü ”k *Ñ-Ó.Ô /ð #ˆOáØˆFØ;=‰Eô
!ñà +¨JÑ 7ôð‰NˆGUô ˜“\ˆFñ"L¸UÔ!K÷,
àØ*ò,
ðð× Ñ  ×!2Ñ!2Ò 3ð,
Ø 3ð,
ˆ    ñ,
ô ÑVÈIÔVÓVˆÜñ
à$ô
ó
ˆ ôi“ˆØ×.Ñ.×2Ñ2°:¼t¿x¹xÓHˆðˆJ؈JØÐ Ø ØˆJØ ð 
ð    
øôIò    $ð$ŠOð    $üó,,
s‚CÁ&C-à C*Ã)C*cóȇ—dˆfd„ }t‰j|tj«¬«}‰jj |||||« |‰j ¬«S)Ncó|•—‰jdk(ry‰jdk(rt‰j|d¬«}|duSy)aÔAre upgrades allowed for this project?
 
            This checks the upgrade strategy, and whether the project was one
            that the user specified in the command line, in order to decide
            whether we should upgrade if there's a newer version available.
 
            (Note that we don't need access to the `--upgrade` flag, because
            an upgrade strategy of "to-satisfy-only" means that `--upgrade`
            was not specified).
            ÚeagerTzonly-if-neededN©rF)r+r"r,)rÚ
user_orderr-s  €r!Ú_eligible_for_upgradez7PipProvider.find_matches.<locals>._eligible_for_upgradeèsNø€ð×%Ñ%¨Ò0ØØ×'Ñ'Ð+;Ò;Ü1Ø×(Ñ(ØØ ô
ð
"¨Ð-Ð-Ør#rs)rÚ requirementsÚ
constraintÚprefers_installedÚincompatibilitiesÚis_satisfied_by)rÚstrÚreturnra)r"r)rÚemptyr(Úfind_candidatesrz)r-rrvryrurws`     r!Ú find_matcheszPipProvider.find_matchesâsjø€õ     ô,*Ø × Ñ Ø Ü×$Ñ$Ó&ô
ˆ
ð
}‰}×,Ñ,Ø!Ø%Ø!Ù#8¸Ó#DÐDØ/Ø ×0Ñ0ð -ó
ð    
r#có$—|j|«Sr')rz)r:Ú    candidates  r!rzzPipProvider.is_satisfied_by s€ð×*Ñ*¨9Ó5Ð5r#cóL—|j }d„|j|«D«S)Nc3ó&K—|]    }|€Œ|–—Œ y­wr'rG)rKrLs  r!rMz/PipProvider.get_dependencies.<locals>.<genexpr>sèø€ÒWaÈÉ”ÑWùs‚Š)r*Úiter_dependencies)r-rÚ with_requiress   r!Úget_dependencieszPipProvider.get_dependenciess&€Ø ×5Ñ5Ð5ˆ áW˜9×6Ñ6°}ÓEÔWÐWr#N) r.rr/zdict[str, Constraint]r0rar1r{r2zdict[str, int]r|ÚNone)r5zRequirement | Candidater|r{) r=ú Iterable[str]r>úMapping[str, Candidate]r?ú!Mapping[str, Iterator[Candidate]]r@z-Mapping[str, Iterator[PreferenceInformation]]rAúSequence[PreferenceInformation]r|rˆ) rr{r>r‰r?rŠr@z-Mapping[str, Iterable[PreferenceInformation]]rAr‹r|r)rr{rvz#Mapping[str, Iterator[Requirement]]ryrŠr|zIterable[Candidate])r:rrrr|ra)rrr|zIterable[Requirement]) Ú__name__Ú
__module__Ú __qualname__Ú__doc__r3r6rErorÚ staticmethodrrzr†rGr#r!r%r%Ns"„ñð .àð .ð+ð .ð"ð     .ð
ð .ð 'ð .ð
ó .ó-ð)à"ð)ð-ð)ð6ð    )ð
Cð )ð :ð )ð
ó)ðVK
àðK
ð-ðK
ð6ð    K
ð
Cð K
ð :ð K
ð
óK
ðZ(
àð(
ð:ð(
ð=ð    (
ð
 
ó (
ðTØ
ò6ó óð6ôXr#r%)rzMapping[str, V]rr{rrr|zD | V)%Ú
__future__rrcÚcollections.abcrrrrÚ    functoolsrÚtypingr    r
Ú pip._vendor.resolvelib.providersr Úpip._internal.req.req_installr Úbaserrrr?rr.rrvrrÚ pip._vendor.resolvelib.resolversrÚPreferenceInformationr{Ú _ProviderBaserrr"r%rGr#r!ú<module>r›s¬ðÝ"ã ßAÓAÝ÷õ
>å<ç4Ñ4Ý2ÝÝ-áÝ;ÝGà2°;À    Ð3IÑJÐà$ [°)¸SÐ%@ÑAMà$€Mñ* ˆCƒL€Ù ˆCƒL€ðØ ðàðððð ó    ô2FX-õFXr#