Files
aitsc/.venv/Lib/site-packages/werkzeug/datastructures/__pycache__/range.cpython-312.pyc

65 lines
9.8 KiB
Plaintext
Raw Normal View History

2025-02-23 09:07:52 +08:00
<EFBFBD>
2025-08-17 18:52:05 +08:00
-<2D><>hB<00><01><><00>ddlmZddlmZddlZddlmZejrddl Z
2025-02-23 09:07:52 +08:00
ejd<04>Z Gd<05>d<06>Z Gd<07>d<08>ZGd <09>d
eje <00>ZGd <0B>d <0C>Zd dlmZy)<0F>)<01> annotationsN)<01>datetime<6D>Tc<01>2<00>eZdZdZddd<03>Zd d<04>Zd d<05>Zd d<06>Zy)
<EFBFBD>IfRangez<65>Very simple object that represents the `If-Range` header in parsed
form. It will either have neither a etag or date or one of either but
never both.
.. versionadded:: 0.7
Nc<01> <00>||_||_y<00>N)<02>etag<61>date)<03>selfr
2025-08-16 19:28:45 +08:00
r s <20>AD:\aitsc\.venv\Lib\site-packages\werkzeug\datastructures\range.py<70>__init__zIfRange.__init__s<00><00><19><04> <09><18><04> <09>c<01><><00>|j<00>tj|j<00>S|j<00>tj|j<00>Sy)<02>-Converts the object back into an HTTP header.<2E>)r <00>http<74> http_dater
2025-02-23 09:07:52 +08:00
<00>
quote_etag<EFBFBD>r s r <00> to_headerzIfRange.to_headers?<00><00> <0F>9<EFBFBD>9<EFBFBD> <20><17>><3E>><3E>$<24>)<29>)<29>,<2C> ,<2C> <0F>9<EFBFBD>9<EFBFBD> <20><17>?<3F>?<3F>4<EFBFBD>9<EFBFBD>9<EFBFBD>-<2D> -<2D>rc<01>"<00>|j<00>Sr <00>rrs r <00>__str__zIfRange.__str__$<00><00><00><13>~<7E>~<7E><1F>rc<01>L<00>dt|<00>j<00>dt|<00><00>d<03>S<00>N<><<3C> <20>><3E><03>type<70>__name__<5F>strrs r <00>__repr__zIfRange.__repr__'<00>&<00><00><12>4<EFBFBD><04>:<3A>&<26>&<26>'<27>q<EFBFBD><13>T<EFBFBD><19> <0A>Q<EFBFBD>7<>7r<00>NN)r
<00>
str | Noner zdatetime | None<6E><02>returnr$)r#<00>
__module__<EFBFBD> __qualname__<5F>__doc__rrrr%<00>rr rr s<00><00><08><19><12> <20>8rrc<01>T<00>eZdZdZ d
d<02>Zd d<03>Zd d<04>Zd d<05>Zdd<06>Zd d<07>Z d d<08>Z
y )<0F>RangeaXRepresents a ``Range`` header. All methods only support only
bytes as the unit. Stores a list of ranges if given, but the methods
only work if only one range is provided.
:raise ValueError: If the ranges provided are invalid.
.. versionchanged:: 0.15
The ranges passed in are validated.
.. versionadded:: 0.7
c<01>r<00>||_||_|D]$\}}|<03>|<04><01> |dks||k\s<01>t||f<02>d<02><02><00>y)Nrz is not a valid range.)<03>units<74>ranges<65>
ValueError)r r2r3<00>start<72>ends r rzRange.__init__8sN<00><00><1B><04>
<EFBFBD><1D><04> <0B> <20>J<EFBFBD>E<EFBFBD>3<EFBFBD><14>}<7D><13><1F>e<EFBFBD>a<EFBFBD>i<EFBFBD>5<EFBFBD>C<EFBFBD><<3C> <20>U<EFBFBD>C<EFBFBD>L<EFBFBD>><3E>1G<31>!H<>I<>I<>!rc<01><><00>|jdk7s|<01>t|j<00>dk7ry|jd\}}|<03> |}|dkr||z }tj|||<01>r|t ||<01>fSy)z<>If the range is for bytes, the length is not None and there is
exactly one range and it is satisfiable it returns a ``(start, stop)``
tuple, otherwise `None`.
<20>bytesN<73>r)r2<00>lenr3r<00>is_byte_range_valid<69>min)r <00>lengthr5r6s r <00>range_for_lengthzRange.range_for_lengthEsy<00><00>
<10>:<3A>:<3A><17> <20>F<EFBFBD>N<EFBFBD>c<EFBFBD>$<24>+<2B>+<2B>6F<36>!<21>6K<36><17><19>[<5B>[<5B><11>^<5E>
<EFBFBD><05>s<EFBFBD> <0E>;<3B><18>C<EFBFBD><14>q<EFBFBD>y<EFBFBD><15><16><0F><05> <0F> #<23> #<23>E<EFBFBD>3<EFBFBD><06> 7<><18>#<23>c<EFBFBD>6<EFBFBD>*<2A>*<2A> *<2A>rc<01>f<00>|j|<01>}|<02>t|j|d|d|<01>Sy)z<>Creates a :class:`~werkzeug.datastructures.ContentRange` object
from the current range and given content length.
Nrr9)r><00> ContentRanger2)r r=<00>rngs r <00>make_content_rangezRange.make_content_rangeUs9<00><00><13>#<23>#<23>F<EFBFBD>+<2B><03> <0E>?<3F><1F><04>
<EFBFBD>
<EFBFBD>C<EFBFBD><01>F<EFBFBD>C<EFBFBD><01>F<EFBFBD>F<EFBFBD>C<> C<>rc<01><><00>g}|jD]E\}}|<03>%|j|dk\r|<02>d<02>n
t|<02><00><00>-|j|<02>d|dz
<00><00><03><00>G|j<00>ddj |<01><00><00>S)rr<00>-r9<00>=<3D>,)r3<00>appendr$r2<00>join)r r3<00>beginr6s r rzRange.to_header^sx<00><00><13><06><1E>+<2B>+<2B>J<EFBFBD>E<EFBFBD>3<EFBFBD><12>{<7B><16> <0A> <0A>U<EFBFBD>a<EFBFBD>Z<EFBFBD><15><07>q<EFBFBD>k<EFBFBD>S<EFBFBD><15>Z<EFBFBD>H<><16> <0A> <0A><15><07>q<EFBFBD><13>q<EFBFBD><17> <09>2<>3<> &<26>
<17>*<2A>*<2A><1C>Q<EFBFBD>s<EFBFBD>x<EFBFBD>x<EFBFBD><06>/<2F>0<>1<>1rc<01>j<00>|j|<01>}|<02> |j<00>d|d<00>d|ddz
<00>d|<01><00>Sy)z\Converts the object into `Content-Range` HTTP header,
based on given length
NrrrDr9<00>/)r>r2)r r=<00>ranges r <00>to_content_range_headerzRange.to_content_range_headerhsJ<00><00><15>%<25>%<25>f<EFBFBD>-<2D><05> <10> <1C><1A>j<EFBFBD>j<EFBFBD>\<5C><11>5<EFBFBD><11>8<EFBFBD>*<2A>A<EFBFBD>e<EFBFBD>A<EFBFBD>h<EFBFBD><11>l<EFBFBD>^<5E>1<EFBFBD>V<EFBFBD>H<EFBFBD>E<> E<>rc<01>"<00>|j<00>Sr rrs r rz Range.__str__qrrc<01>L<00>dt|<00>j<00>dt|<00><00>d<03>Srr!rs r r%zRange.__repr__tr&rN)r2r$r3z%cabc.Sequence[tuple[int, int | None]]r*<00>None)r=<00>
int | Noner*ztuple[int, int] | None)r=rQr*<00>ContentRange | Noner))r=rQr*r() r#r+r,r-rr>rBrrMrr%r.rr r0r0+sF<00><00>
<08> J<01><18> J<01>"G<> J<01> <0A> J<01><14> <14>2<><14> <20>8rr0c<01>|<00>eZdZdd<01>Zej
dd<02><04>Zej
d d<03><04>Z d
d<04>Zd d<05>Zy) <0C>_CallbackPropertyc<01><00>d|<02><00>|_y)N<>_)<01>attr)r <00>owner<65>names r <00> __set_name__z_CallbackProperty.__set_name__ys<00><00><17><04>v<EFBFBD>J<EFBFBD><04> rc<01><00>yr r.<00>r <00>instancerXs r <00>__get__z_CallbackProperty.__get__|s<00><00>?Brc<01><00>yr r.r\s r r^z_CallbackProperty.__get__~s<00><00>ORrc<01><<00>|<01>|S|j|jSr )<02>__dict__rWr\s r r^z_CallbackProperty.__get__<5F>s$<00><00> <14> <1B><17>K<EFBFBD><17> <20> <20><14><19><19>+<2B>+rc<01>r<00>||j|j<|j<00>|j|<01>yyr )rarW<00> on_update)r r]<00>values r <00>__set__z_CallbackProperty.__set__<5F>s5<00><00>',<2C><08><19><19>$<24>)<29>)<29>$<24> <13> <1D> <1D> )<29> <14> <1E> <1E>x<EFBFBD> (<28> *rN)rX<00>type[ContentRange]rYr$r*rP)r]rPrXrPr*zte.Self)r]r@rXrfr*r)r]rRrXztype[ContentRange] | Noner*z te.Self | T)r]r@rdrr*rP)r#r+r,rZ<00>t<>overloadr^rer.rr rTrTxsO<00><00><1F><07>Z<EFBFBD>Z<EFBFBD>B<><10>B<><06>Z<EFBFBD>Z<EFBFBD>R<><10>R<>,<2C>+<2B>,<2C>4M<34>,<2C> <14>,<2C>)rrTc<01><><00>eZdZUdZ d dd <09>Ze<05>Zded<e<05>Zded<e<05>Z ded<e<05>Z
ded< d dd
<EFBFBD>Z dd <0B>Z dd <0C>Z dd <0A>Zdd<0E>Zdd<0F>Zy)r@zDRepresents the content range header.
.. versionadded:: 0.7
Nr2r(r5rQ<00>stopr=c<01>:<00>||_|j||||<01>yr )rc<00>set)r r2r5rjr=rcs r rzContentRange.__init__<5F>s<00><00>#<23><04><0E> <0C><08><08><15><04>f<EFBFBD>e<EFBFBD>,rc<01><><00>tj|||<03>sJd<01><00>||_||_||_||_|j <00>|j |<00>yy)z#Simple method to update the ranges.zBad range providedN)rr;<00>_units<74>_start<72>_stop<6F>_lengthrc)r r5rjr=r2s r rlzContentRange.set<65>sY<00><00><14>'<27>'<27><05>t<EFBFBD>V<EFBFBD><<3C>R<>>R<>R<><<3C>"'<27><04> <0B>"'<27><04> <0B>!%<25><04>
<EFBFBD>#)<29><04> <0C> <0F>><3E>><3E> %<25> <10>N<EFBFBD>N<EFBFBD>4<EFBFBD> <20> &rc<01>,<00>|jddd<01><02>y)zcSets the units to `None` which indicates that the header should
no longer be used.
N)r2)rlrs r <00>unsetzContentRange.unset<65>s<00><00> <0A><08><08><14>t<EFBFBD>4<EFBFBD><08>(rc<01><><00>|j<00>y|j<00>d}n |j}|j<00>|j<00>d|<01><00>S|j<00>d|j<00>d|jdz
<00>d|<01><00>S)Nr<00>*z */rrDr9rK)rnrqrorp)r r=s r rzContentRange.to_header<65>st<00><00> <0F>;<3B>;<3B> <1E><15> <0F><<3C><<3C> <1F> #<23>F<EFBFBD><19>\<5C>\<5C>F<EFBFBD> <0F>;<3B>;<3B> <1E><1A>k<EFBFBD>k<EFBFBD>]<5D>#<23>f<EFBFBD>X<EFBFBD>.<2E> .<2E><16>+<2B>+<2B><1D>a<EFBFBD><04> <0B> <0B>}<7D>A<EFBFBD>d<EFBFBD>j<EFBFBD>j<EFBFBD>1<EFBFBD>n<EFBFBD>-=<3D>Q<EFBFBD>v<EFBFBD>h<EFBFBD>G<>Grc<01><00>|jduSr )rnrs r <00>__bool__zContentRange.__bool__<5F>s<00><00><13>{<7B>{<7B>$<24>&<26>&rc<01>"<00>|j<00>Sr rrs r rzContentRange.__str__<5F>rrc<01>L<00>dt|<00>j<00>dt|<00><00>d<03>Srr!rs r r%zContentRange.__repr__<5F>r&rr') r2r(r5rQrjrQr=rQrcz*cabc.Callable[[ContentRange], None] | Noner*rP)Nr8)
r5rQrjrQr=rQr2r(r*rP)r*rPr))r*<00>bool)r#r+r,r-rrTr2<00>__annotations__r5rjr=rlrsrrwrr%r.rr r@r@<00>s<><00><00><08>"<22>@D<> -<2D><19> -<2D><1A> -<2D><19> -<2D>
<1B> -<2D> ><3E> -<2D>
<0E> -<2D>*<2A>+<2B>E<EFBFBD>:<3A>+<2B>)<29>+<2B>E<EFBFBD>:<3A>+<2B>)<29>*<2A>D<EFBFBD>*<2A>*<2A>*<2A>,<2C>F<EFBFBD>J<EFBFBD>,<2C> "<22>#<23> !<21><19>!<21><19>!<21><1B> !<21>
<1A> !<21>
<0E> !<21> )<29> H<01>'<27> <20>8rr@<00>)r)<14>
__future__r<00>collections.abc<62>abc<62>cabc<62>typingrgr<00> TYPE_CHECKING<4E>typing_extensions<6E>te<74>TypeVarrrr0<00>GenericrTr@rrr.rr <00><module>r<>sg<00><01>"<22><1E><12><1D><04>?<3F>?<3F>"<22> <0A>A<EFBFBD>I<EFBFBD>I<EFBFBD>c<EFBFBD>N<EFBFBD><01>8<>8<><J8<>J8<>Z)<29><01> <09> <09>!<21> <0C>)<29>.C8<>C8<>Nr