hyb
2025-12-30 399ffc4d9829f70529d3b096fe4228f7496cc566
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
Ë
ñúhl,ãóö—ddlmZ    ddlmZmZ    ddlmZddlm    Z    ddl
m Z dd    l m Z dd
lmZmZd d gZe«ZGd „d e«ZGd„d e«Zy#e$r ddlmZmZYŒRwxYw#e$r Gd„d«ZYŒ`wxYw)é)Úabsolute_import)ÚMappingÚMutableMapping)ÚRLockcó—eZdZd„Zd„Zy)rcó—y©N©©Úselfs úSH:\Change_password\venv_build\Lib\site-packages\pip/_vendor/urllib3/_collections.pyÚ    __enter__zRLock.__enter__ ó€Ø ócó—yr    r
)r Úexc_typeÚ    exc_valueÚ    tracebacks    r Ú__exit__zRLock.__exit__rrN)Ú__name__Ú
__module__Ú __qualname__rrr
rr rr s „ò    ó    rr)Ú OrderedDicté)Ú InvalidHeader)Úsix)ÚiterkeysÚ
itervaluesÚRecentlyUsedContainerÚHTTPHeaderDictcóF—eZdZdZeZd d„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z y) ra‘
    Provides a thread-safe dict-like container which maintains up to
    ``maxsize`` keys while throwing away the least-recently-used keys beyond
    ``maxsize``.
 
    :param maxsize:
        Maximum number of recent elements to retain.
 
    :param dispose_func:
        Every time an item is evicted from the container,
        ``dispose_func(value)`` is called.  Callback which will get called
    Ncóh—||_||_|j«|_t    «|_yr    )Ú_maxsizeÚ dispose_funcÚ ContainerClsÚ
_containerrÚlock)r Úmaxsizer$s   r Ú__init__zRecentlyUsedContainer.__init__/s*€ØˆŒ Ø(ˆÔà×+Ñ+Ó-ˆŒÜ“Gˆ    rcóž—|j5|jj|«}||j|<|cddd«S#1swYyxYwr    )r'r&Úpop)r ÚkeyÚitems   r Ú __getitem__z!RecentlyUsedContainer.__getitem__6sC€à Y‰Yñ    Ø—?‘?×&Ñ& sÓ+ˆDØ#'ˆDO‰O˜CÑ  Ø÷    ÷    ò    ús ,AÁA có€—t}|j5|jj|t«}||j|<t    |j«|j
kDr|jj d¬«\}}ddd«|jr|tur|j|«yyy#1swYŒ1xYw)NF)Úlast)Ú_Nullr'r&ÚgetÚlenr#Úpopitemr$)r r,ÚvalueÚ evicted_valueÚ_keys     r Ú __setitem__z!RecentlyUsedContainer.__setitem__=s¦€Üˆ Ø Y‰Yñ    Jà ŸO™O×/Ñ/°´UÓ;ˆMØ#(ˆDO‰O˜CÑ  ô4—?‘?Ó# d§m¡mÒ3Ø&*§o¡o×&=Ñ&=À5Ð&=Ó&IÑ#m÷    Jð × Ò  ´eÑ!;Ø × Ñ ˜mÕ ,ð"<Ð ÷    Jð    Jús “A1B4Â4B=có¸—|j5|jj|«}ddd«|jr|j«yy#1swYŒ(xYwr    )r'r&r+r$)r r,r5s   r Ú __delitem__z!RecentlyUsedContainer.__delitem__LsP€Ø Y‰Yñ    -Ø—O‘O×'Ñ'¨Ó,ˆE÷    -ð × Ò Ø × Ñ ˜eÕ $ð ÷    -ð    -ús AÁAcóp—|j5t|j«cddd«S#1swYyxYwr    )r'r3r&r s r Ú__len__zRecentlyUsedContainer.__len__Ss*€Ø Y‰Yñ    (ܐt—‘Ó'÷    (÷    (ò    (ús,¬5có—td«‚)Nz7Iteration over this class is unlikely to be threadsafe.)ÚNotImplementedErrorr s r Ú__iter__zRecentlyUsedContainer.__iter__Ws€Ü!Ø Eó
ð    
rcó—|j5tt|j««}|jj    «ddd«|j
rD]}|j |«Œyy#1swYŒ/xYwr    )r'Úlistrr&Úclearr$)r Úvaluesr5s   r rBzRecentlyUsedContainer.clear\sn€Ø Y‰Yñ    $äœ* T§_¡_Ó5Ó6ˆFØ O‰O× !Ñ !Ô #÷    $ð
× Ò Øò )Ø×!Ñ! %Õ(ñ )ð ÷     $ð    $ús 9A4Á4A=có‚—|j5tt|j««cddd«S#1swYyxYwr    )r'rArr&r s r ÚkeyszRecentlyUsedContainer.keysfs/€Ø Y‰Yñ    3Üœ §¡Ó1Ó2÷    3÷    3ò    3ús5µ>)é
N)rrrÚ__doc__rr%r)r.r8r:r<r?rBrEr
rr rrs6„ñ ð€Lóòò -ò%ò(ò
ò
)ó3rcó‡—eZdZdZdˆfd„    Zd„Zd„Zd„Zd„Zd„Z    d„Z
e jre jZe jZe«Zd    „Zd
„Zefd „Zd „Zd „Zd„Zefd„Zd„ZeZeZeZeZd„Zd„Zd„Z d„Z!d„Z"d„Z#e$d„«Z%ˆxZ&S)r ap
    :param headers:
        An iterable of field-value pairs. Must not contain multiple field names
        when compared case-insensitively.
 
    :param kwargs:
        Additional field-value pairs to pass in to ``dict.update``.
 
    A ``dict`` like container for storing HTTP Headers.
 
    Field names are stored and compared case-insensitively in compliance with
    RFC 7230. Iteration provides the first case-sensitive key seen for each
    case-insensitive pair.
 
    Using ``__setitem__`` syntax overwrites fields that compare equal
    case-insensitively in order to maintain ``dict``'s api. For fields that
    compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add``
    in a loop.
 
    If multiple fields that are equal case-insensitively are passed to the
    constructor or ``.update``, the behavior is undefined and some will be
    lost.
 
    >>> headers = HTTPHeaderDict()
    >>> headers.add('Set-Cookie', 'foo=bar')
    >>> headers.add('set-cookie', 'baz=quxx')
    >>> headers['content-length'] = '7'
    >>> headers['SET-cookie']
    'foo=bar, baz=quxx'
    >>> headers['Content-Length']
    '7'
    c óڕ—tt| «t«|_|3t |t«r|j |«n|j|«|r|j|«yyr    )Úsuperr r)rr&Ú
isinstanceÚ
_copy_fromÚextend)r ÚheadersÚkwargsÚ    __class__s   €r r)zHTTPHeaderDict.__init__sUø€Ü Œn˜dÑ,Ô.Ü%›-ˆŒØ Рܘ'¤>Ô2Ø—‘ Õ(à— ‘ ˜GÔ$Ù Ø K‰K˜Õ ð rcóz—||g|j|j«<|j|j«Sr    ©r&Úlower©r r,Úvals   r r8zHTTPHeaderDict.__setitem__˜s/€Ø(+¨S zˆ‰˜Ÿ    ™    › Ñ$؏‰˜sŸy™y›{Ñ+Ð+rcód—|j|j«}dj|dd«S)Nú, r©r&rSÚjoinrTs   r r.zHTTPHeaderDict.__getitem__œs+€Øo‰o˜cŸi™i›kÑ*ˆØy‰y˜˜Q˜R˜Ó!Ð!rcó:—|j|j«=yr    rR©r r,s  r r:zHTTPHeaderDict.__delitem__ s€Ø O‰O˜CŸI™I›KÑ (rcó:—|j«|jvSr    )rSr&r[s  r Ú __contains__zHTTPHeaderDict.__contains__£s€Øy‰y‹{˜dŸo™oÐ-Ð-rcó
—t|t«s t|d«syt|t|««st|«|«}t    d„|j «D««t    d„|j «D««k(S)NrEFc3óFK—|]\}}|j«|f–—Œy­wr    ©rS©Ú.0ÚkÚvs   r ú    <genexpr>z(HTTPHeaderDict.__eq__.<locals>.<genexpr>«sèø€ÒA¡t q¨!Q—W‘W“Y ”NÑAùó‚!c3óFK—|]\}}|j«|f–—Œy­wr    r`ras   r rez(HTTPHeaderDict.__eq__.<locals>.<genexpr>«s%èø€òJ
Ù#˜q !ˆQW‰W‹Y˜ŒNñJ
ùrf)rKrÚhasattrÚtypeÚdictÚ
itermerged©r Úothers  r Ú__eq__zHTTPHeaderDict.__eq__¦su€Ü˜%¤Ô)´'¸%ÀÔ2HØÜ˜%¤ d£Ô,Ø”D˜“J˜uÓ%ˆEÜÑA¨t¯©Ó/@ÔAÓAÄTñJ
Ø',×'7Ñ'7Ó'9ôJ
óF
ñ
ð    
rcó&—|j|« Sr    )rnrls  r Ú__ne__zHTTPHeaderDict.__ne__¯s€Ø—;‘;˜uÓ%Ð%Ð%rcó,—t|j«Sr    )r3r&r s r r<zHTTPHeaderDict.__len__¸s€Ü4—?‘?Ó#Ð#rc#óXK—|jj«D]    }|d–—Œ y­w)Nr)r&rC)r Úvalss  r r?zHTTPHeaderDict.__iter__»s+èø€à—O‘O×*Ñ*Ó,ò    ˆDؐq‘'‹Mñ    ùs‚(*cóX—    ||}||=|S#t$r||jur‚|cYSwxYw)z§D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
        If key is not found, d is returned if given, otherwise KeyError is raised.
        )ÚKeyErrorÚ_HTTPHeaderDict__marker)r r,Údefaultr5s    r r+zHTTPHeaderDict.popÀsC€ð    Ø˜‘IˆEð S    ØˆLøô ò    Ø˜$Ÿ-™-Ñ'ØØŠNð    ús ‚ Œ)¨)có*—    ||=y#t$rYywxYwr    )rur[s  r ÚdiscardzHTTPHeaderDict.discardÑs €ð    ØS‘    øÜò    Ù ð    ús ‚†    ‘có—|j«}||g}|jj||«}||ur|j|«yy)zâAdds a (name, value) pair, doesn't overwrite the value if it already
        exists.
 
        >>> headers = HTTPHeaderDict(foo='bar')
        >>> headers.add('Foo', 'baz')
        >>> headers['foo']
        'bar, baz'
        N)rSr&Ú
setdefaultÚappend)r r,rUÚ    key_lowerÚnew_valsrss      r ÚaddzHTTPHeaderDict.add×sG€ð—I‘I“Kˆ    Ø˜:ˆà‰×)Ñ)¨)°XÓ>ˆØ ˜4Ñ Ø K‰K˜Õ ð  rcóZ—t|«dkDr#tdjt|«««‚t|«dk\r|dnd}t|t«r+|j «D]\}}|j ||«Œn€t|t«r|D]}|j |||«ŒnSt|d«r+|j«D]}|j |||«Œn|D]\}}|j ||«Œ|j«D]\}}|j ||«Œy)zÀGeneric import function for any type of header-like object.
        Adapted version of MutableMapping.update in order to insert items
        with self.add instead of self.__setitem__
        rz9extend() takes at most 1 positional arguments ({0} given)rr
rEN) r3Ú    TypeErrorÚformatrKr Ú    iteritemsrrrhrEÚitems)r ÚargsrOrmr,rUr5s       r rMzHTTPHeaderDict.extendçs €ô
ˆt‹9qŠ=Üð(ß(.©¬s°4«yÓ(9óð ô˜t›9¨š>Q’¨rˆä eœ^Ô ,Ø!ŸO™OÓ-ò #‘SØ—‘˜˜cÕ"ñ #ä ˜œwÔ 'Øò *Ø—‘˜˜e C™jÕ)ñ *ä U˜FÔ #Ø—z‘z“|ò *Ø—‘˜˜e C™jÕ)ñ *ð$ò %‘
UØ—‘˜˜eÕ$ð %ð!Ÿ,™,›.ò    !‰JˆCØ H‰HS˜%Õ  ñ    !rc󎗠   |j|j«}|ddS#t$r||jurgcYS|cYSwxYw)zmReturns a list of all the values for the named field. Returns an
        empty list if the key doesn't exist.rN)r&rSrurv)r r,rwrss    r ÚgetlistzHTTPHeaderDict.getlistsO€ð    Ø—?‘? 3§9¡9£;Ñ/ˆD𠘘8ˆOøô ò    Ø˜$Ÿ-™-Ñ'Ø’    ØŠNð    ús‚$¤A¿AÁAcó>—gd¢}|D]}|j|«Œ|S)z–
        Remove content-specific header fields before changing the request
        method to GET or HEAD according to RFC 9110, Section 15.4.
        )zContent-EncodingzContent-LanguagezContent-Locationz Content-TypezContent-LengthÚDigestz Last-Modified)ry)r Úcontent_specific_headersÚheaders   r Ú_prepare_for_method_changez)HTTPHeaderDict._prepare_for_method_changes,€ò
$
Рð/ò    !ˆFØ L‰L˜Õ  ð    !àˆ rcóf—t|«j›dt|j««›dS)Nú(ú))rirrjrkr s r Ú__repr__zHTTPHeaderDict.__repr__)s#€Ü ›:×.Ó.´°T·_±_Ó5FÕ0GÐHÐHrcó¬—|D]O}|j|«}t|t«r t|«}|g|z|j|j    «<ŒQyr    )r‡rKrAr&rS)r rmr,rUs    r rLzHTTPHeaderDict._copy_from,sL€Øò    7ˆCØ—-‘- Ó$ˆCܘ#œtÔ$ä˜3“iØ,/¨5°3©;ˆDO‰O˜CŸI™I›KÒ (ñ     7rcóH—t|««}|j|«|Sr    )rirL)r Úclones  r ÚcopyzHTTPHeaderDict.copy4s"€Ø”T“
“ ˆØ ×Ñ˜ÔØˆ rc#ózK—|D]2}|j|j«}|ddD] }|d|f–—Œ Œ4y­w)z8Iterate over all header lines, including duplicate ones.rNrrR)r r,rsrUs    r rƒzHTTPHeaderDict.iteritems9sLèø€àò    #ˆCØ—?‘? 3§9¡9£;Ñ/ˆDؘA˜Bxò #Ø˜1‘g˜slÓ"ñ #ñ    #ùs‚9;c#óŠK—|D]:}|j|j«}|ddj|dd«f–—Œ<y­w)z:Iterate over all headers, merging duplicate ones together.rrWrNrXrTs   r rkzHTTPHeaderDict.itermerged@sGèø€àò    -ˆCØ—/‘/ #§)¡)£+Ñ.ˆCؐa‘&˜$Ÿ)™) C¨¨ GÓ,Ð,Ó ,ñ    -ùs‚AAcó4—t|j««Sr    )rArƒr s r r„zHTTPHeaderDict.itemsFs€ÜD—N‘NÓ$Ó%Ð%rcó2—d}g}|jD]}}|j|«r4|std|z«‚|d\}}||dz|j«zf|d<ŒH|j    dd«\}}|j ||j«f«Œ||«S)z4Read headers from a Python 2 httplib message object.)ú ú    z/Header continuation with no previous header: %séÿÿÿÿr™ú:r)rNÚ
startswithrÚstripÚsplitr|)ÚclsÚmessageÚobs_fold_continued_leadersrNÚliner,r5s       r Ú from_httplibzHTTPHeaderDict.from_httplibIs¯€ð &1Ð"؈à—O‘Oò    1ˆD؏‰Ð9Ô:Ùô(ØIÈDÑPóðð")¨¡‘JC˜Ø#&¨°© °d·j±j³lÑ(BÐ"CG˜B‘KØàŸ™ C¨Ó+‰JˆCØ N‰N˜C §¡£Ð/Õ 0ð    1ñ"7‹|Ðrr    )'rrrrGr)r8r.r:r]rnrprÚPY2rrrÚobjectrvr<r?r+ryrrMr‡rŒÚ
getheadersÚgetallmatchingheadersÚigetÚget_allrrLr”rƒrkr„Ú classmethodr¤Ú __classcell__)rPs@r r r ksÐø„ñõB     ò,ò"ò)ò.ò
ò&ð ‡w‚wØ!×*Ñ*ˆØ#×.Ñ.ˆ
á‹x€Hò$òð
 (óò"ò ò !ð8$,ó
òð&€JØ#ÐØ €Dð€GòIò7òò
#ò-ò &ðñóôrN)Ú
__future__rÚcollections.abcrrÚ ImportErrorÚ collectionsÚ    threadingrrÚ
exceptionsrÚpackagesrÚ packages.sixrrÚ__all__r¦r1rr r
rr ú<module>r¶s‰ðÝ&ð4ß7ð    Ýõ$å%Ýß.à "Ð$4Ð
5€ñ    ‹€ôI3˜NôI3ôXx^õxøðMò4ß3Ñ3ð4ûðò÷óðús"ˆA‘A&Á A#Á"A#Á&A8Á7A8