2bi;*SSKJr SSKJrJr SSKJr SSKJ r SSK J r SS K J r SS KJrJr S S /r\"5r"S S \5r"SS \5rg!\a SSKJrJr NSf=f!\a "SS5rNbf=f))absolute_import)MappingMutableMapping)RLockc \rSrSrSrSrSrg)r cgNselfs ڒ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py __enter__RLock.__enter__  cgr r )r exc_type exc_value tracebacks r__exit__RLock.__exit__rrr N)__name__ __module__ __qualname____firstlineno__rr__static_attributes__r rrrr s   rr) OrderedDict) InvalidHeader)six)iterkeys itervaluesRecentlyUsedContainerHTTPHeaderDictcP\rSrSrSr\rS SjrSrSr Sr Sr S r S r S rS rg)r$am 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 NcdXlX lUR5Ul[ 5Ulgr )_maxsize dispose_func ContainerCls _containerrlock)r maxsizer*s r__init__RecentlyUsedContainer.__init__/s& (++-G rcUR URRU5nX RU'UsSSS5 $!,(df  g=fr )r-r,pop)r keyitems r __getitem__!RecentlyUsedContainer.__getitem__6s6 YY??&&s+D#'OOC YYs +A Ac[nUR URRU[5nX RU'[ UR5UR :aURR SS9upCSSS5 UR(aU[LaURU5 ggg!,(df  N<=f)NF)last)_Nullr-r,getlenr)popitemr*)r r3value evicted_value_keys r __setitem__!RecentlyUsedContainer.__setitem__=s YY OO//U;M#(OOC 4??#dmm3&*oo&=&=5&=&I#   e!;   m ,"< Ys A-B66 CcUR URRU5nSSS5 UR(aURW5 gg!,(df  N2=fr )r-r,r2r*)r r3r=s r __delitem__!RecentlyUsedContainer.__delitem__LsH YYOO'',E      e $ Ys A A#czUR [UR5sSSS5 $!,(df  g=fr )r-r;r,r s r__len__RecentlyUsedContainer.__len__Ss YYt'YYs, :c[S5e)Nz7Iteration over this class is unlikely to be threadsafe.)NotImplementedErrorr s r__iter__RecentlyUsedContainer.__iter__Ws! E  rcUR [[UR55nURR 5 SSS5 UR (aWHnUR U5 M gg!,(df  N;=fr )r-listr#r,clearr*)r valuesr=s rrNRecentlyUsedContainer.clear\sa YY*T__56F OO ! ! #   !!%(   Ys 9A;; B cUR [[UR55sSSS5 $!,(df  g=fr )r-rMr"r,r s rkeysRecentlyUsedContainer.keysfs$ YY12YYs 5 A)r,r)r*r-) N)rrrr__doc__rr+r/r5r@rCrFrJrNrRrr rrr$r$s6 L -%( )3rc.^\rSrSrSrSU4SjjrSrSrSrSr Sr S r \ R(a\Rr\R r\"5rS rS r\4S jrS rSrSr\4Sjr\r\r\r\rSrSrSr Sr!Sr"Sr#\$S5r%Sr&U=r'$)r%ka  :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 >[[U] 5 [5UlUb8[ U[5(aUR U5 OURU5 U(aURU5 ggr )superr%r/rr, isinstance _copy_fromextend)r headerskwargs __class__s rr/HTTPHeaderDict.__init__sX nd,.%-  '>22( G$  KK  rcxX/URUR5'URUR5$r r,lowerr r3vals rr@HTTPHeaderDict.__setitem__s-(+z $syy{++rcdURUR5nSRUSS5$)N, rr,rcjoinrds rr5HTTPHeaderDict.__getitem__s+oociik*yyQR!!rc:URUR5 gr rbr r3s rrCHTTPHeaderDict.__delitem__s OOCIIK (rc<UR5UR;$r )rcr,rms r __contains__HTTPHeaderDict.__contains__syy{doo--rc([U[5(d[US5(dg[U[U55(d[U5"U5n[ SUR 555[ SUR 555:H$)NrRFc3J# UHupUR5U4v M g7fr rc.0kvs r (HTTPHeaderDict.__eq__..sA/@tqQWWYN/@!#c3J# UHupUR5U4v M g7fr rtrus rryrzs!J '9tqQWWYN'9r{)rZrhasattrtypedict itermergedr others r__eq__HTTPHeaderDict.__eq__s|%))'%2H2H%d,,Ju%EAt/@AATJ ','7'7'9J F   rc.URU5(+$r )rrs r__ne__HTTPHeaderDict.__ne__s;;u%%%rc,[UR5$r )r;r,r s rrFHTTPHeaderDict.__len__s4??##rc#\# URR5H nUSv M g7f)Nr)r,rO)r valss rrJHTTPHeaderDict.__iter__s%OO**,Dq'M-s*,cVXnX U$![a X RLaeUs$f=f)zD.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 r3defaultr=s rr2HTTPHeaderDict.pops= IE  L  --'N s  ((c*X g![a gf=fr )rrms rdiscardHTTPHeaderDict.discards     s  cUR5nX/nURRX45nXELaURU5 gg)zAdds 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)rcr, setdefaultappend)r r3re key_lowernew_valsrs raddHTTPHeaderDict.addsAIIK :)))>   KK  rc[U5S:a#[SR[U555e[U5S:aUSOSn[U[5(a+UR 5HupEUR XE5 M O[U[5(aUHnUR XCU5 M OY[US5(a,UR5HnUR XCU5 M OUHupFUR XF5 M UR5HupFUR XF5 M g)zGeneric 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 rRN) r; TypeErrorformatrZr% iteritemsrrr}rRitems)r argsr^rr3rer=s rr\HTTPHeaderDict.extends t9q=((.s4y(9 t9>Qr e^ , ,!OO-". w ' 'Cj) UF # #zz|Cj)$$ $$!,,.JC HHS )rcURUR5nUSS$![a X RLa/s$Us$f=f)zeReturns a list of all the values for the named field. Returns an empty list if the key doesn't exist.rN)r,rcrr)r r3rrs rgetlistHTTPHeaderDict.getlistsM ??399;/D 8O  --' N s$AAAcj[U5R<S[UR55<S3$)N())r~rrrr s r__repr__HTTPHeaderDict.__repr__s#:..T__5F0GHHrcUHUnURU5n[U[5(a [U5nU/U-URUR 5'MW gr )rrZrMr,rc)r rr3res rr[HTTPHeaderDict._copy_fromsJC--$C#t$$3i,/53;DOOCIIK ( rcH[U5"5nURU5 U$r )r~r[)r clones rcopyHTTPHeaderDict.copy"s T   rc## UH5nURUR5nUSSH nUSU4v M M7 g7f)z8Iterate over all header lines, including duplicate ones.rNrrb)r r3rres rrHTTPHeaderDict.iteritems'sAC??399;/DABx1gsl" s=?c## UH;nURUR5nUSSRUSS54v M= g7f)z:Iterate over all headers, merging duplicate ones together.rrhrNrirds rrHTTPHeaderDict.itermerged.sAC//#))+.Ca&$))CG,, ,sAAc4[UR55$r )rMrr s rrHTTPHeaderDict.items4sDNN$%%rcDSn/nURHnURU5(a8U(d[SU-5eUSupVXVS-UR5-4US'MQUR SS5upVUR XVR545 M U"U5$)z4Read headers from a Python 2 httplib message object.)  z/Header continuation with no previous header: %sr:r)r] startswithr stripsplitr)clsmessageobs_fold_continued_leadersr]liner3r=s r from_httplibHTTPHeaderDict.from_httplib7s &1"OOD9::(IDP")JC#& djjl(B"CGBKC+JC NNC/ 0$"7|r)r,r )(rrrrrUr/r@r5rCrprrr!PY2rr"r#objectrrFrJr2rrr\r getheadersgetallmatchingheadersigetget_allrr[rrrr classmethodrr __classcell__)r_s@rr%r%ksB  ,"). & ww!**#.. xH$ ("  !8$, J# DGI7 #- &rN) __future__rcollections.abcrr ImportError collections threadingrr exceptionsr packagesr! packages.sixr"r#__all__rr9r$r%r rrrs&47 $%. "$4 5 I3NI3Xf^fM4334s"AA'A$#A$'A:9A: