Files
Trancribe/venv/lib/python3.12/site-packages/websockets/__pycache__/datastructures.cpython-312.pyc

105 lines
8.7 KiB
Plaintext
Raw Normal View History

<EFBFBD>
$n!j<><00><01><><00>ddlmZddlmZmZmZmZddlmZm Z gd<04>Z
Gd<05>de <0B>Z Gd<07>dee e f<00>ZGd <09>d
e <09>Zeee e fzeee e fzezZy ) <0C>)<01> annotations)<04>Iterable<6C>Iterator<6F>Mapping<6E>MutableMapping)<02>Any<6E>Protocol)<03>Headers<72> HeadersLike<6B>MultipleValuesErrorc<01>$<00><00>eZdZdZd<03>fd<02> Z<04>xZS)r zP
Exception raised when :class:`Headers` has multiple values for a key.
c<01><><00><01>t|j<00>dk(rt|jd<00>St<00>|<00><00>S<00>N<>r)<05>len<65>args<67>repr<70>super<65>__str__)<02>self<6C> __class__s <20><>[/home/jean/linux-transcriber/venv/lib/python3.12/site-packages/websockets/datastructures.pyrzMultipleValuesError.__str__s3<00><><00> <0E>t<EFBFBD>y<EFBFBD>y<EFBFBD>><3E>Q<EFBFBD> <1E><17><04> <09> <09>!<21> <0C>%<25> %<25><14>w<EFBFBD><EFBFBD> <20> <20><00><02>return<72>str)<06>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__r<00> __classcell__<5F>rs@rr r s<00><><00><08>
!<21>!rr c<01><><00><00>eZdZdZddgZdd<04>Zdd<05>Zdd<06>Zdd<07>Zdd<08>Z dd <09>Z
dd
<EFBFBD>Z dd <0B>Z dd <0C>Z dd <0A>Zdd<0E>Zdd<0F>Zdd<10>Zd<14>fd<11> Zd d<12>Zd!d<13>Z<14>xZS)"r
a<>
Efficient data structure for manipulating HTTP headers.
A :class:`list` of ``(name, values)`` is inefficient for lookups.
A :class:`dict` doesn't suffice because header names are case-insensitive
and multiple occurrences of headers with the same name are possible.
:class:`Headers` stores HTTP headers in a hybrid data structure to provide
efficient insertions and lookups while preserving the original data.
In order to account for multiple values with minimal hassle,
:class:`Headers` follows this logic:
- When getting a header with ``headers[name]``:
- if there's no value, :exc:`KeyError` is raised;
- if there's exactly one value, it's returned;
- if there's more than one value, :exc:`MultipleValuesError` is raised.
- When setting a header with ``headers[name] = value``, the value is
appended to the list of values for that header.
- When deleting a header with ``del headers[name]``, all values for that
header are removed (this is slow).
Other methods for manipulating headers are consistent with this logic.
As long as no header occurs multiple times, :class:`Headers` behaves like
:class:`dict`, except keys are lower-cased to provide case-insensitivity.
Two methods support manipulating multiple values explicitly:
- :meth:`get_all` returns a list of all values for a header;
- :meth:`raw_items` returns an iterator of ``(name, values)`` pairs.
<20>_dict<63>_listc<01>D<00>i|_g|_|j|i|<02><01>y<00>N)r$r%<00>update)rr<00>kwargss r<00>__init__zHeaders.__init__Ds#<00><00>+-<2D><04>
<EFBFBD>,.<2E><04>
<EFBFBD><13><04> <0B> <0B>T<EFBFBD>$<24>V<EFBFBD>$rc<01>L<00>djd<02>|jD<00><00>dzS)N<>c3<01>2K<00>|]\}}|<01>d|<02>d<01><04><01><00>y<02>w)z: <20>
N<EFBFBD>)<03>.0<EFBFBD>key<65>values r<00> <genexpr>z"Headers.__str__.<locals>.<genexpr>Js!<00><00><><00>J<><1A><13>e<EFBFBD>#<23><15>b<EFBFBD><15><07>t<EFBFBD>,<2C>J<>s<00>r.)<02>joinr%<00>rs rrzHeaders.__str__Is <00><00><11>w<EFBFBD>w<EFBFBD>J<>t<EFBFBD>z<EFBFBD>z<EFBFBD>J<>J<>V<EFBFBD>S<>Src<01>N<00>|jj<00>d|j<00>d<02>S)N<>(<28>))rrr%r5s r<00>__repr__zHeaders.__repr__Ls$<00><00><16>.<2E>.<2E>)<29>)<29>*<2A>!<21>D<EFBFBD>J<EFBFBD>J<EFBFBD>><3E><11>;<3B>;rc<01><><00>|j<00>}|jj<00>|_|jj<00>|_|Sr')rr$<00>copyr%)rr;s rr;z Headers.copyOs7<00><00><13>~<7E>~<7E><1F><04><19>Z<EFBFBD>Z<EFBFBD>_<EFBFBD>_<EFBFBD>&<26><04>
<EFBFBD><19>Z<EFBFBD>Z<EFBFBD>_<EFBFBD>_<EFBFBD>&<26><04>
<EFBFBD><13> rc<01>4<00>t|<00>j<00>Sr')r<00>encoder5s r<00> serializezHeaders.serializeUs<00><00><12>4<EFBFBD>y<EFBFBD><1F><1F>!<21>!rc<01>^<00>t|t<00>xr|j<00>|jvSr')<04>
isinstancer<00>lowerr$<00>rr1s r<00> __contains__zHeaders.__contains__[s#<00><00><19>#<23>s<EFBFBD>#<23>A<><03> <09> <09> <0B>t<EFBFBD>z<EFBFBD>z<EFBFBD>(A<>Arc<01>,<00>t|j<00>Sr')<02>iterr$r5s r<00>__iter__zHeaders.__iter__^s<00><00><13>D<EFBFBD>J<EFBFBD>J<EFBFBD><1F>rc<01>,<00>t|j<00>Sr')rr$r5s r<00>__len__zHeaders.__len__as<00><00><12>4<EFBFBD>:<3A>:<3A><EFBFBD>rc<01>x<00>|j|j<00>}t|<02>dk(r|dSt|<01><00>r)r$rArr <00>rr1r2s r<00> __getitem__zHeaders.__getitem__fs5<00><00><14>
<EFBFBD>
<EFBFBD>3<EFBFBD>9<EFBFBD>9<EFBFBD>;<3B>'<27><05> <0E>u<EFBFBD>:<3A><11>?<3F><18><11>8<EFBFBD>O<EFBFBD>%<25>c<EFBFBD>*<2A> *rc<01><><00>|jj|j<00>g<00>j|<02>|jj||f<02>yr')r$<00>
setdefaultrA<00>appendr%rJs r<00> __setitem__zHeaders.__setitem__ms=<00><00> <0C>
<EFBFBD>
<EFBFBD><1D><1D>c<EFBFBD>i<EFBFBD>i<EFBFBD>k<EFBFBD>2<EFBFBD>.<2E>5<>5<>e<EFBFBD><<3C> <0C>
<EFBFBD>
<EFBFBD><19><19>3<EFBFBD><05>,<2C>'rc<01><><00>|j<00>}|jj|<02>|jD<00><03>cgc]\}}|j<00>|k7s<01>||f<02><02>c}}|_ycc}}wr')rAr$<00> __delitem__r%)rr1<00> key_lower<65>k<>vs rrQzHeaders.__delitem__qsM<00><00><17>I<EFBFBD>I<EFBFBD>K<EFBFBD> <09> <0C>
<EFBFBD>
<EFBFBD><1E><1E>y<EFBFBD>)<29>)-<2D><1A><1A>N<><14><11>A<EFBFBD>q<EFBFBD>w<EFBFBD>w<EFBFBD>y<EFBFBD>I<EFBFBD>7M<37>q<EFBFBD>!<21>f<EFBFBD>N<><04>
<EFBFBD><EFBFBD>Ns <00>A'<06>A'c<01>`<00>t|t<00>stS|j|jk(Sr')r@r
<00>NotImplementedr$)r<00>others r<00>__eq__zHeaders.__eq__ws%<00><00><19>%<25><17>)<29>!<21> !<21><13>z<EFBFBD>z<EFBFBD>U<EFBFBD>[<5B>[<5B>(<28>(rc<01> <00>i|_g|_y)z&
Remove all headers.
N)r$r%r5s r<00>clearz Headers.clear|s<00><00>
<18><04>
<EFBFBD><17><04>
rc<01>H<00><01>td<01>|D<00><00>}t<00>|<00>|i|<02><01>y)zT
Update from a :class:`Headers` instance and/or keyword arguments.
c3<01>`K<00>|]&}t|t<00>r|j<00>n|<01><01><00>(y<00>wr')r@r
<00> raw_items)r0<00>args rr3z!Headers.update.<locals>.<genexpr><3E>s)<00><00><><00>
<EFBFBD>EH<EFBFBD>z<EFBFBD>#<23>w<EFBFBD>7<>C<EFBFBD>M<EFBFBD>M<EFBFBD>O<EFBFBD>S<EFBFBD> @<40>
<EFBFBD>s<00>,.N)<03>tuplerr()rrr)rs <20>rr(zHeaders.update<74>s/<00><><00>
<15>
<EFBFBD>LP<EFBFBD>
<EFBFBD>
<EFBFBD><04> <0E><07><0E><04>'<27><06>'rc<01>V<00>|jj|j<00>g<00>S)z|
Return the (possibly empty) list of all values for a header.
Args:
key: Header name.
)r$<00>getrArBs r<00>get_allzHeaders.get_all<6C>s<00><00><14>z<EFBFBD>z<EFBFBD>~<7E>~<7E>c<EFBFBD>i<EFBFBD>i<EFBFBD>k<EFBFBD>2<EFBFBD>.<2E>.rc<01>,<00>t|j<00>S)zO
Return an iterator of all values as ``(name, value)`` pairs.
)rEr%r5s rr]zHeaders.raw_items<6D>s<00><00>
<14>D<EFBFBD>J<EFBFBD>J<EFBFBD><1F>r)rr r)rr<00>Noner)rr
)r<00>bytes)r1<00>objectr<00>bool)rz Iterator[str])r<00>int<6E>r1rrr)r1rr2rrrd)r1rrrd)rWrrrg)rrd)r1rrz list[str])rzIterator[tuple[str, str]])rrrr <00> __slots__r*rr9r;r>rCrFrHrKrOrQrXrZr(rbr]r!r"s@rr
r
sh<00><><00>#<08>J<19>'<27>"<22>I<EFBFBD>%<25>
T<01><<3C><14> "<22> B<01> <20><1F>
+<2B>(<28>O<01> )<29>
<18>(<28>/<2F> rr
c<01> <00>eZdZdZdd<02>Zdd<03>Zy)<07>SupportsKeysAndGetItemz_
Dict-like types with ``keys() -> str`` and ``__getitem__(key: str) -> str`` methods.
c<01><00>yr'r/r5s r<00>keyszSupportsKeysAndGetItem.keys<79><00><00>rc<01><00>yr'r/rBs rrKz"SupportsKeysAndGetItem.__getitem__<5F>rorN)rz Iterable[str]ri)rrrr rnrKr/rrrlrl<00>s<00><00><08>
)<29>/rrlN)<12>
__future__r<00>collections.abcrrrr<00>typingrr <00>__all__<5F> LookupErrorr rr
rlr_r r/rr<00><module>rvs}<00><01>"<22>G<>G<> <20> <02><07>
!<21>+<2B>
!<21>D <20>n<EFBFBD>S<EFBFBD>#<23>X<EFBFBD>&<26>D <20>P0<>X<EFBFBD>0<> <0C>g<EFBFBD>c<EFBFBD>3<EFBFBD>h<EFBFBD><1F><1F>(<28>5<EFBFBD><13>c<EFBFBD><18>?<3F>";<3B>;<3B>>T<>T<> <0C>r