hyb
2025-12-23 7e5db3a16b423ec4a43459805e277979bcac7db5
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
Ë
ñúhÕãó
—ddlmZddlZddlZddlZddlZddlZddlZddl    m
Z
m Z ddl m Z ddlmZmZmZmZddlmZmZddlmZdd    lmZmZmZmZdd
lmZej>e «Z!dd „Z"Gd „d «Z#Gd„de«Z$y)é)Ú annotationsN)ÚIteratorÚSequence)ÚOptional)ÚInvalidWheelFilenameÚNormalizedNameÚcanonicalize_nameÚparse_wheel_filename)ÚBaseDistributionÚBaseEnvironment)ÚWHEEL_EXTENSIONé)Ú BadMetadataÚBasePathÚget_dist_canonical_nameÚget_info_location)Ú Distributioncó—|jt«sytjj    |«sy    t tjj |««tj|«S#t$rYywxYw)NF)
Úendswithr ÚosÚpathÚisfiler
ÚbasenamerÚzipfileÚ
is_zipfile)Úlocations úYH:\Change_password\venv_build\Lib\site-packages\pip/_internal/metadata/importlib/_envs.pyÚ_looks_like_wheelrsi€Ø × Ñ œ_Ô -ØÜ 7‰7>‰>˜(Ô #ØðÜœRŸW™W×-Ñ-¨hÓ7Ô8ô × Ñ ˜hÓ 'Ð'øô  òÙðús¸(A5Á5    BÂBcól—eZdZdZeej jee    fZ
dd„Z dd„Z d    d„Z d    d„Zy)
Ú_DistributionFindera$Finder to locate distributions.
 
    The main purpose of this class is to memoize found distributions' names, so
    only one distribution is returned for each package name. At lot of pip code
    assumes this (because it is setuptools's behavior), and not doing the same
    can potentially cause a distribution in lower precedence path to override a
    higher precedence one if the caller is not careful.
 
    Eventually we probably want to make it possible to see lower precedence
    installations as well. It's useful feature, after all.
    có"—t«|_y©N)ÚsetÚ _found_names)Úselfs rÚ__init__z_DistributionFinder.__init__7s €Ü14³ˆÕóc#ólK—t|«rytjj|g¬«D]I}t    |«}    t |«}||jvrŒ)|jj|«||f–—ŒKy#t $r+}tjd||j«Yd}~Œ|d}~wwxYw­w)z!Find distributions in a location.N)rzSkipping %s due to %s) rÚ    importlibÚmetadataÚ distributionsrrrÚloggerÚwarningÚreasonr$Úadd)r%rÚdistÚ info_locationÚnameÚes      rÚ
_find_implz_DistributionFinder._find_impl:s®èø€ô
˜XÔ &Ø ô×&Ñ&×4Ñ4¸8¸*Ð4ÓEò
    &ˆDÜ-¨dÓ3ˆMð Ü.¨tÓ4ðt×(Ñ(Ñ(ØØ × Ñ × !Ñ ! $Ô 'ؘ Ð%Ó %ñ
    &øôò Ü—‘Ð6¸ ÀqÇxÁxÔPÜûð üs.‚<B4¿ A=Á
3B4Á=    B1Â!B,Â'B4Â,B1Â1B4c#ó~K—|j|«D]%\}}|€d}n |j}t|||«–—Œ'y­w)ziFind distributions in a location.
 
        The path can be either a directory, or a ZIP archive.
        N)r4Úparentr)r%rr0r1Úinstalled_locations     rÚfindz_DistributionFinder.findOsOèø€ð
$(§?¡?°8Ó#<ò    HÑ ˆD-ØÐ$Ø6:Ñ"à%2×%9Ñ%9Ð"ܘt ]Ð4FÓGÓ Gñ     Hùs‚;=c#ó®K—tj|«}|j«sy|j«D]Œ}|jdk7rŒ|j «5}d„|D«}t d„|D«d«}ddd«sŒKt|j|««}|j|«D]\}}    t||    |«–—ŒŒŽy#1swYŒQxYw­w)a¦Read location in egg-link files and return distributions in there.
 
        The path should be a directory; otherwise this returns nothing. This
        follows how setuptools does this for compatibility. The first non-empty
        line in the egg-link is read as a path (resolved against the egg-link's
        containing directory if relative). Distributions found at that linked
        location are returned.
        Nz    .egg-linkc3ó<K—|]}|j«–—Œy­wr")Ústrip©Ú.0Úlines  rú    <genexpr>z<_DistributionFinder.find_legacy_editables.<locals>.<genexpr>ksèø€Ò4¨$˜Ÿ™ŸÑ4ùs‚c3ó&K—|]    }|sŒ|–—Œ y­wr"©r<s  rr?z<_DistributionFinder.find_legacy_editables.<locals>.<genexpr>lsèø€Ò"B¨DºT¤4Ñ"Bùs‚ŠÚ) ÚpathlibÚPathÚis_dirÚiterdirÚsuffixÚopenÚnextÚstrÚjoinpathr4r)
r%rrÚchildÚfÚlinesÚ
target_relÚtarget_locationr0r1s
          rÚfind_legacy_editablesz)_DistributionFinder.find_legacy_editables[sÌèø€ô|‰|˜HÓ%ˆØ{‰{Œ}Ø Ø—\‘\“^ò
    >ˆE؏|‰|˜{Ò*ØØ—‘“ð H Ù4°!Ô4Ü!Ñ"B°EÔ"BÀBÓG
÷ HñØÜ! $§-¡-°
Ó";Ó<ˆOØ'+§¡°Ó'Gò >Ñ#mÜ" 4¨¸Ó=Ó=ñ >ñ
    >÷ Hð Hüs‚ACÁC    Á9ACà   C    ÃCN)ÚreturnÚNone)rrJrRzIterator[FoundResult])rrJrRúIterator[BaseDistribution])Ú__name__Ú
__module__Ú __qualname__Ú__doc__Útupler)r*rrrÚ FoundResultr&r4r8rQrAr'rr r (s>„ñ
𘠠  ×*Ñ*×7Ñ7¸À(Ñ9KÐKÑL€Kó7ó&ó*
Hô>r'r cóH—eZdZdd„Zedd„«Zed    d„«Zd
d„Zd d„Zy) Ú Environmentcó—||_yr")Ú_paths)r%Úpathss  rr&zEnvironment.__init__us    €Øˆ r'có.—|tj«Sr"©Úsysr)Úclss rÚdefaultzEnvironment.defaultxs€á”3—8‘8‹}Ðr'cóB—|€|tj«S||«Sr"ra)rcr_s  rÚ
from_pathszEnvironment.from_paths|s€à ˆ=Ù”s—x‘x“=Ð  Ù5‹zÐr'c#ó®K—t«}|jD]4}|j|«Ed{–—†|j|«Ed{–—†Œ6y7Œ 7Œ    ­wr")r r^r8rQ)r%Úfinderrs   rÚ_iter_distributionszEnvironment._iter_distributions‚sNèø€Ü$Ó&ˆØŸ ™ ò    >ˆHØ—{‘{ 8Ó,× ,Ð ,Ø×3Ñ3°HÓ=× =Ñ =ñ    >Ø ,øØ =ús!‚.A°A±AÁ    AÁ
AÁAcód‡—t|«Šˆfd„|j«D«}t|d«S)Nc3ó@•K—|]}|j‰k(r|–—Œy­wr")Úcanonical_name)r=Ú distributionrls  €rr?z/Environment.get_distribution.<locals>.<genexpr>Šs'øèø€ò
àØ×*Ñ*¨nÒ<ô ñ
ùsƒ)r    Úiter_all_distributionsrI)r%r2Úmatchesrls   @rÚget_distributionzEnvironment.get_distributionˆs4ø€Ü*¨4Ó0ˆó
à $× ;Ñ ;Ó =ô
ˆô
G˜TÓ"Ð"r'N)r_z Sequence[str]rRrS)rRr )r_zlist[str] | NonerRr )rRrT)r2rJrRzBaseDistribution | None)    rUrVrWr&Ú classmethodrdrfrirprAr'rr\r\ts9„óðòóððòóðó
>ô #r'r\)rrJrRÚbool)%Ú
__future__rÚimportlib.metadatar)ÚloggingrrCrbrÚcollections.abcrrÚtypingrÚpip._vendor.packaging.utilsrrr    r
Úpip._internal.metadata.baser r Úpip._internal.utils.filetypesr Ú_compatrrrrÚ_distsrÚ    getLoggerrUr,rr r\rAr'rú<module>r~slðÝ"ãÛÛ    ÛÛ
Ûß.Ý÷ó÷JÝ9çVÓVÝ à    ˆ×    Ñ    ˜8Ó    $€ó    (÷I>ñI>ôX#/õ#r'