intellecton/venv/lib/python3.12/site-packages/cachecontrol/__pycache__/heuristics.cpython-312.pyc

55 lines
6.5 KiB
Text
Raw Normal View History

<EFBFBD>
M<>j<00><01><><00>ddlmZddlZddlZddlmZmZmZddlmZm Z m
Z
ddl m Z m Z mZe rddlmZdZddd<08>Zdd <09>ZGd
<EFBFBD>d <0B>ZGd <0C>d e<14>ZGd<0E>de<14>ZGd<10>de<14>Zy)<15>)<01> annotationsN)<03>datetime<6D> timedelta<74>timezone)<03>
formatdate<EFBFBD> parsedate<74> parsedate_tz)<03> TYPE_CHECKING<4E>Any<6E>Mapping)<01> HTTPResponsez%a, %d %b %Y %H:%M:%S GMTc<01>Z<00>|xs#tjtj<00>}||zS<00>N)r<00>nowr<00>utc)<02>delta<74>dates <20>Z/home/antigravity/intellecton/venv/lib/python3.12/site-packages/cachecontrol/heuristics.py<70> expire_afterrs#<00><00> <0F> -<2D>8<EFBFBD><<3C><<3C><08> <0C> <0C>-<2D>D<EFBFBD> <0F>%<25><<3C><17>c<01>Z<00>ttj|j<00><00><00>Sr)r<00>calendar<61>timegm<67> timetuple)<01>dts r<00>datetime_to_headerrs<00><00> <15>h<EFBFBD>o<EFBFBD>o<EFBFBD>b<EFBFBD>l<EFBFBD>l<EFBFBD>n<EFBFBD>5<> 6<>6rc<01>$<00>eZdZdd<01>Zdd<02>Zdd<03>Zy)<08> BaseHeuristicc<01><00>y)a!
Return a valid 1xx warning header value describing the cache
adjustments.
The response is provided too allow warnings like 113
http://tools.ietf.org/html/rfc7234#section-5.5.4 where we need
to explicitly say response is over 24 hours old.
z110 - "Response is Stale"<22><00><02>self<6C>responses r<00>warningzBaseHeuristic.warnings<00><00>+rc<01><00>iS)z<>Update the response headers with any new headers.
NOTE: This SHOULD always include some Warning header to
signify that the response was cached by the client, not
by way of the provided headers.
r r!s r<00>update_headerszBaseHeuristic.update_headers's <00><00><12> rc<01><><00>|j|<01>}|rK|jj|<02>|j|<01>}|<03>|jjd|i<01>|S)N<>Warning)r&<00>headers<72>updater$)r"r#<00>updated_headers<72>warning_header_values r<00>applyzBaseHeuristic.apply0s]<00><00><1E>-<2D>-<2D>h<EFBFBD>7<><0F> <1A> <14> <1C> <1C> #<23> #<23>O<EFBFBD> 4<>#'<27><<3C><<3C><08>#9<> <20>#<23>/<2F><18> <20> <20>'<27>'<27><19>4H<34>(I<>J<><17>rN<>r#r <00>return<72>
str | None<6E>r#r r/<00>dict[str, str])r#r r/r )<06>__name__<5F>
__module__<EFBFBD> __qualname__r$r&r-r rrrrs<00><00> +<2B><12> rrc<01><00>eZdZdZdd<02>Zy)<05> OneDayCachezM
Cache the response by providing an expires 1 day in the
future.
c<01><><00>i}d|jvr\t|jd<00>}ttd<03><04>t |dddt
j i<01><01><07>}t|<04>|d<d|d <|S)
N<EFBFBD>expiresr<00>)<01>days<79><00>tzinfo)r<00>public<69> cache-control)r)rrrrrrr)r"r#r)rr9s rr&zOneDayCache.update_headersBss<00><00><14><07> <14>H<EFBFBD>,<2C>,<2C> ,<2C><1C>X<EFBFBD>-<2D>-<2D>f<EFBFBD>5<>6<>D<EFBFBD>"<22><19>q<EFBFBD>!<21><1D>t<EFBFBD>B<EFBFBD>Q<EFBFBD>x<EFBFBD>=<3D><08> <0C> <0C>=<3D><0E>G<EFBFBD>"4<>G<EFBFBD>!<<3C>G<EFBFBD>I<EFBFBD> <1E>'/<2F>G<EFBFBD>O<EFBFBD> $<24><16>rNr1)r3r4r5<00>__doc__r&r rrr7r7<s <00><00><08>
rr7c<01>(<00>eZdZdZdd<02>Zdd<03>Zdd<04>Zy) <09> ExpiresAfterz;
Cache **all** requests for a defined time period.
c <01>$<00>tdi|<01><01>|_y)Nr )rr)r"<00>kws r<00>__init__zExpiresAfter.__init__Us<00><00><1E>_<EFBFBD><12>_<EFBFBD><04>
rc<01>H<00>t|j<00>}t|<02>dd<02>S)Nr>)r9r?)rrr)r"r#r9s rr&zExpiresAfter.update_headersXs <00><00><1E>t<EFBFBD>z<EFBFBD>z<EFBFBD>*<2A><07>-<2D>g<EFBFBD>6<><18>R<>Rrc<01>$<00>d}||jzS)Nz:110 - Automatically cached for %s. Response might be stale)r)r"r#<00>tmpls rr$zExpiresAfter.warning\s<00><00>K<><04><13>d<EFBFBD>j<EFBFBD>j<EFBFBD> <20> rN)rDr r/<00>Noner1r.)r3r4r5r@rEr&r$r rrrBrBPs<00><00><08>%<25>S<01>!rrBc<01>(<00>eZdZdZhd<02>Zdd<03>Zdd<04>Zy)<08> LastModifieda<64>
If there is no Expires header already, fall back on Last-Modified
using the heuristic from
http://tools.ietf.org/html/rfc7234#section-4.2.2
to calculate a reasonable value.
Firefox also does something like this per
https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching_FAQ
http://lxr.mozilla.org/mozilla-release/source/netwerk/protocol/http/nsHttpResponseHead.cpp#397
Unlike mozilla we limit this to 24-hr.
> <00>,<00>-<00><><00><><00><><00><><00><><00><><00><><00><><00><>c<01> <00>|j}d|vriSd|vr
|ddk7riS|j|jvriSd|vsd|vriSt|d<00>}|<03>J<00>t j
|dd<00>}t |d<00>}|<05>iStj<00>}td||z
<00>}|t j
|<05>z
}tdt|dz d <09><00>} | |kriS|| z}
dtjttj|
<EFBFBD><00>iS)
Nr9r?r>rz last-modifiedr<r<00>
i<>Q) r)<00>status<75>cacheable_by_default_statusesr rrr<00>time<6D>max<61>min<69>strftime<6D>TIME_FMT<4D>gmtime) r"<00>respr)<00>
time_tupler<00> last_modifiedr<00> current_ager<00>freshness_lifetimer9s rr&zLastModified.update_headers|s!<00><00>%)<29>\<5C>\<5C><07> <14><07> <1F><15>I<EFBFBD> <1A>g<EFBFBD> %<25>'<27>/<2F>*B<>h<EFBFBD>*N<><15>I<EFBFBD> <0F>;<3B>;<3B>d<EFBFBD>@<40>@<40> @<40><15>I<EFBFBD> <11><17> <20>O<EFBFBD>7<EFBFBD>$B<><15>I<EFBFBD>!<21>'<27>&<26>/<2F>2<>
<EFBFBD><19>%<25>%<25>%<25><17><EFBFBD><EFBFBD>z<EFBFBD>"<22>1<EFBFBD>~<7E>.<2E><04>!<21>'<27>/<2F>":<3A>;<3B> <0A> <18> <20><15>I<EFBFBD><12>i<EFBFBD>i<EFBFBD>k<EFBFBD><03><19>!<21>S<EFBFBD>4<EFBFBD>Z<EFBFBD>(<28> <0B><14>x<EFBFBD><EFBFBD><EFBFBD>}<7D>5<>5<><05> <20><11>C<EFBFBD><05><02>
<EFBFBD>I<EFBFBD>$><3E>?<3F><1A> <1D><1B> ,<2C><15>I<EFBFBD><16>+<2B>+<2B><07><19>4<EFBFBD>=<3D>=<3D><18>4<EFBFBD>;<3B>;<3B>w<EFBFBD>3G<33>H<>I<>Irc<01><00>yrr )r"ras rr$zLastModified.warning<6E>s<00><00>rN)rar r/r2)rar r/r0)r3r4r5r@rZr&r$r rrrKrKas<00><00>
<08> %<06>!<21>J<01>@rrKr)rrrzdatetime | Noner/r)rrr/<00>str)<18>
__future__rrr[rrr<00> email.utilsrrr <00>typingr
r r <00>urllib3r r_rrrr7rBrKr rr<00><module>rlsf<00><01>#<23><0F> <0B>2<>2<>;<3B>;<3B>.<2E>.<2E><10>$<24> &<26><08><18>
7<><18><18>B<17>-<2D><17>(!<21>=<3D>!<21>"<<14>=<3D><r