hyb
2026-01-30 44480e71b27aa9d4cb8441f50c873f1b110e9691
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
Ë
ñúh†ãóž—ddlmZddlZddlmZddlmZmZmZddl    m
Z
m Z m Z ddl mZerddlmZdZgd    ¢ZGd
„d «ZGd „d e«Zy)é)Ú annotationsN)ÚIterable)Ú TYPE_CHECKINGÚBinaryIOÚNoReturn)Ú HashMismatchÚ HashMissingÚInstallationError)Ú read_chunks)Ú_HashÚsha256)r Úsha384Úsha512có|—eZdZdZddd„Zdd„Zedd„«Zdd„Zdd„Z    dd„Z
dd    „Z dd
„Z dd „Z dd „Zdd „Zdd„Zy)ÚHasheszaA wrapper that builds multiple hashes at once and checks them against
    known-good values
 
    Ncó¨—i}|B|j«D]/\}}t|«Dcgc]}|j«‘Œc}||<Œ1||_ycc}w)zo
        :param hashes: A dict of algorithm names pointing to lists of allowed
            hex digests
        N)ÚitemsÚsortedÚlowerÚ_allowed)ÚselfÚhashesÚallowedÚalgÚkeysÚks      úMH:\Change_password\venv_build\Lib\site-packages\pip/_internal/utils/hashes.pyÚ__init__zHashes.__init__sW€ð
ˆØ Ð Ø#Ÿ\™\›^ò A‘    Tä39¸$³<Ö@¨a §¡¥    Ò@˜’ ð A𠈍 ùò As¨Acó—t|t«stS|s|S|s|Si}|jj    «D]9\}}||jvrŒ|Dcgc]}||j|vsŒ|‘Œc}||<Œ;t|«Scc}w©N)Ú
isinstancerÚNotImplementedrr)rÚotherÚnewrÚvaluesÚvs      rÚ__and__zHashes.__and__*s’€Ü˜%¤Ô(Ü!Ð !ñ؈KÙØˆLðˆØ Ÿ>™>×/Ñ/Ó1ò    F‰KˆCØ˜$Ÿ-™-Ñ'ØØ#)ÖE˜a¨Q°$·-±-ÀÑ2DÒ-DšÒEˆCŠHð    Fôc‹{ÐùòFs ÁBÁ+BcóV—td„|jj«D««S)Nc3ó2K—|]}t|«–—Œy­wr )Úlen)Ú.0Údigestss  rú    <genexpr>z&Hashes.digest_count.<locals>.<genexpr>?sèø€ÒF G”3w—<ÑFùs‚)Úsumrr%©rs rÚ digest_countzHashes.digest_count=s €äÑF¨t¯}©}×/CÑ/CÓ/EÔFÓFÐFócó>—||jj|g«vS)z/Return whether the given hex digest is allowed.)rÚget)rÚ    hash_nameÚ
hex_digests   rÚis_hash_allowedzHashes.is_hash_allowedAs€à˜TŸ]™]×.Ñ.¨y¸"Ó=Ð=Ð=r1có¨—i}|jj«D]}    tj|«||<Œ|D](}|j«D]}|j|«ŒŒ*|j«D]&\}}|j«|j|vsŒ&y|j|«y#tt
f$rt d|›«‚wxYw)z‚Check good hashes against ones built from iterable of chunks of
        data.
 
        Raise HashMismatch if none match.
 
        zUnknown hash name: N) rrÚhashlibr$Ú
ValueErrorÚ    TypeErrorr
r%ÚupdaterÚ    hexdigestÚ_raise)rÚchunksÚgotsr4ÚchunkÚhashÚgots       rÚcheck_against_chunkszHashes.check_against_chunksEs߀ðˆØŸ™×+Ñ+Ó-ò    KˆIð KÜ")§+¡+¨iÓ"8Y’ð    Kð ò    #ˆEØŸ ™ › ò #Ø— ‘ ˜EÕ"ñ #ð    #ð#Ÿj™j›lò    ‰NˆIs؏}‰}‹ $§-¡-°    Ñ":Ò:Ùð    ð      ‰ DÕøô¤    Ð*ò KÜ'Ð*=¸i¸[Ð(IÓJÐJð Kús ¡B3Â3Ccó.—t|j|«‚r )rr©rr?s  rr=z Hashes._raise\s€Ü˜4Ÿ=™=¨$Ó/Ð/r1có6—|jt|««S)zaCheck good hashes against a file-like object
 
        Raise HashMismatch if none match.
 
        )rCr )rÚfiles  rÚcheck_against_filezHashes.check_against_file_s€ð ×(Ñ(¬°TÓ):Ó;Ð;r1cóh—t|d«5}|j|«cddd«S#1swYyxYw)NÚrb)ÚopenrH)rÚpathrGs   rÚcheck_against_pathzHashes.check_against_pathgs1€Ü $˜Ó ð    1 Ø×*Ñ*¨4Ó0÷    1÷    1ò    1ús(¨1có\—|j«D]\}}|j||«sŒyy)z3Return whether any of the given hashes are allowed.TF)rr6)rrr4r5s    rÚ
has_one_ofzHashes.has_one_ofks4€à%+§\¡\£^ò    Ñ !ˆIzØ×#Ñ# I¨zÕ:Ùð    ðr1có,—t|j«S)z,Return whether I know any known-good hashes.)Úboolrr/s rÚ__bool__zHashes.__bool__rs€äD—M‘MÓ"Ð"r1có`—t|t«stS|j|jk(Sr )r!rr"r)rr#s  rÚ__eq__z Hashes.__eq__vs%€Ü˜%¤Ô(Ü!Ð !؏}‰} §¡Ñ.Ð.r1c    ó†—tdjtd„|jj    «D««««S)Nú,c3óVK—|]!\}}|D]}dj||f«–—ŒŒ#y­w)ú:N)Újoin)r+rÚ digest_listÚdigests    rr-z"Hashes.__hash__.<locals>.<genexpr>~s>èø€òá(˜˜[Ø"-òðð—H‘H˜c 6˜]×+ðØ+ñùs‚'))rArYrrrr/s rÚ__hash__zHashes.__hash__{s=€ÜØ H‰HÜñà,0¯M©M×,?Ñ,?Ó,Aôóó ó
ð    
r1r )rzdict[str, list[str]] | NoneÚreturnÚNone)r#rr]r)r]Úint)r4Ústrr5r`r]rQ)r>zIterable[bytes]r]r^©r?zdict[str, _Hash]r]r)rGrr]r^)rLr`r]r^)rzdict[str, str]r]rQ)r]rQ)r#Úobjectr]rQ)Ú__name__Ú
__module__Ú __qualname__Ú__doc__rr'Úpropertyr0r6rCr=rHrMrOrRrTr\©r1rrrsT„ñô
 
 óð&òGóðGó>óó.0ó<ó1óó#ó/ô
    
r1rcó,‡—eZdZdZdˆfd„ Zdd„ZˆxZS)Ú MissingHasheszÀA workalike for Hashes used when we're missing a hash for a requirement
 
    It computes the actual hash of the requirement and raises a HashMissing
    exception showing it to the user.
 
    có2•—t‰|tgi¬«y)z!Don't offer the ``hashes`` kwarg.)rN)ÚsuperrÚ FAVORITE_HASH)rÚ    __class__s €rrzMissingHashes.__init__sø€ô    ‰Ñ¤°Р3ÐÕ4r1cóB—t|tj««‚r )r    rmr<rEs  rr=zMissingHashes._raise•s€Ü˜$œ}Ñ-×7Ñ7Ó9Ó:Ð:r1)r]r^ra)rcrdrerfrr=Ú __classcell__)rns@rrjrj‡sø„ñõ5÷ ;r1rj)Ú
__future__rr8Úcollections.abcrÚtypingrrrÚpip._internal.exceptionsrr    r
Úpip._internal.utils.miscr r rmÚ STRONG_HASHESrrjrhr1rú<module>rwsJðÝ"ãÝ$ß4Ñ4çQÑQÝ0áÝð
€ ò
/€ ÷l
ñl
ô^;Fõ;r1