Files
old-saburly-wagtail-web/env/lib/python3.10/site-packages/whitenoise/__pycache__/base.cpython-310.pyc

70 lines
7.6 KiB
Plaintext
Raw Normal View History

2024-08-27 20:33:44 +02:00
o
ȯ<>fB(<00>@s<>ddlmZddlZddlZddlZddlmZddlmZddl m
Z
ddl m Z ddl mZddlmZdd lmZdd
lmZdd lmZdd lmZdd lmZGdd<0F>d<0F>Zdd<11>ZdS)<12>)<01> annotationsN)<01>normpath)<01>Callable)<01>Headers)<01> FileWrapper)<01>
MediaTypes)<01>IsDirectoryError)<01>MissingFileError)<01>Redirect)<01>
StaticFile)<01>decode_path_info)<01>ensure_leading_trailing_slashc
@s<>eZdZdZ  d7ddddddddd<07>d8dd<18>Zdd<1A>Zedd<1C><00>Zd9dd<1E>Zdd <20>Z d9d!d"<22>Z
d#d$<24>Z d%d&<26>Z d'd(<28>Z ed)d*<2A><00>Zed9d+d,<2C><01>Zd9d-d.<2E>Zd/d0<64>Zd1d2<64>Zd3d4<64>Zd5d6<64>ZdS):<3A>
WhiteNoisei<03>NF<4E><Tzutf-8)<08> autorefresh<73>max_age<67>allow_all_origins<6E>charset<65> mimetypes<65>add_headers_function<6F>
index_file<EFBFBD>immutable_file_testr<00>boolr<00>
int | Nonerr<00>strr<00>dict[str, str] | Noner<00>*Callable[[Headers, str, str], None] | Noner<00>str | bool | Noner<00>Callable | str | Nonec s<>||_||_||_||_| |_|
durd|_n t|
t<07>r |
|_nd|_| dur;t| <0B>s8t <09>
| <0B><01><00>fdd<04>|_ n| |_ t |d<05>|_ ||_i|_g|_|durV|<00>||<03>dSdS)NTz
index.htmlcst<00><00>|<01><01>S<00>N)r<00>search)<02>path<74>url<72><01>regex<65><00>Q/home/amir/Desktop/saburlyweb/env/lib/python3.10/site-packages/whitenoise/base.py<70><lambda>?sz%WhiteNoise.__init__.<locals>.<lambda>)<01> extra_types)rrrrrr<00>
isinstancer<00>callable<6C>re<72>compilerr<00> media_types<65> application<6F>files<65> directories<65> add_files) <0C>selfr.<00>root<6F>prefixrrrrrrrrr%r#r&<00>__init__s,

 <04>zWhiteNoise.__init__cCsPt|<01>dd<02><02>}|jr|<00>|<03>}n|j<04>|<03>}|dur!|<00>||<02>S|<00>|||<02>S)N<> PATH_INFO<46>)r <00>getr<00> find_filer/r.<00>serve)r2<00>environ<6F>start_responser!<00> static_filer%r%r&<00>__call__Js   zWhiteNoise.__call__cCsX|<00>|d|<01>}|j<01>d|jj<02><00>}||t|j<04><01>|jdur*|<01>dt<07>}||j<05>SgS)N<>REQUEST_METHOD<4F> zwsgi.file_wrapper)<08> get_response<73>status<75>phrase<73>list<73>headers<72>filer8r)r=r;r<<00>response<73> status_line<6E> file_wrapperr%r%r&r:Us
 
zWhiteNoise.servecCsztj<01>|<01>}|<01>tjj<04>tjj}t|<02>}|jr#|j<07>d||f<02>dStj<01> |<01>r1|<00>
||<02>dSt j d|<01><00>dd<04>dS)NrzNo directory at: <20>)<01>
stacklevel) <0A>osr!<00>abspath<74>rstrip<69>sepr rr0<00>insert<72>isdir<69>update_files_dictionary<72>warnings<67>warn)r2r3r4r%r%r&r1`s  zWhiteNoise.add_filescCsRtt|<01><01>}|<03><02>D]}|t|<01>d<00>}|<05>dd<02>}||}|j|||d<03>q
dS)N<>\<5C>/<2F><01>
stat_cache)<06>dict<63>scantree<65>keys<79>len<65>replace<63>add_file_to_dictionary)r2r3r4rXr!<00> relative_path<74> relative_urlr"r%r%r&rRos   <04>z"WhiteNoise.update_files_dictionarycCs<>|j||d<01>r dS|jdur9|<01>d|j<00>r9|dt|j<01> <00>}|<04>d<02>}|<00>||<04>|j|<|<00>||<04>|j|<|}|j|||d<01>}||j|<dS)NrWrV)<08>is_compressed_variantr<00>endswithr\rN<00>redirectr/<00>get_static_file)r2r"r!rX<00> index_url<72>index_no_slashr=r%r%r&r^ys
z!WhiteNoise.add_file_to_dictionaryc Cs^|jdur |<01>d<01>r dS|<00>|<01>sdS|<00>|<01>D]}z |<00>||<01>WSty,YqwdS<00>NrV)rrb<00>url_is_canonical<61>candidate_paths_for_url<72>find_file_at_pathr )r2r"r!r%r%r&r9<00>s
 <02><04>zWhiteNoise.find_fileccsT<00>|jD]#\}}|<01>|<03>r'tj<03>||t|<03>d<00><00>}tj<03>||f<02>|kr'|VqdSr)r0<00>
startswithrLr!<00>joinr\<00> commonprefix)r2r"r3r4r!r%r%r&ri<00>s<02>
<02><04>z"WhiteNoise.candidate_paths_for_urlc Cs<>|<00>|<01>r t|<01><01>|jdurk|<02>d<01>r!tj<05>||j<02>}|<00>||<02>S|<02>d|j<00>rAtj<05>|<01>r=|<00> ||dt
|j<02> <00><00>St|<01><01>z|<00>||<02>WSt yjtj<05>tj<05>||j<02><02>re|<00> ||d<00>YSYt|<01><01>w|<00>||<02>Srg) rar rrbrLr!rlrd<00>isfilercr\r<00>r2r!r"r%r%r&rj<00>s&


  <02> <02><02> zWhiteNoise.find_file_at_pathcCs6d|vrdSt|<00>}|<00>d<03>r|dkr|d7}||kS)z<>
Check that the URL path is in canonical format i.e. has normalised
slashes and no path traversal elements
rUFrV)rrb)r"<00>
normalisedr%r%r&rh<00>s zWhiteNoise.url_is_canonicalcCs<|dd<00>dvr|dd<01>}|durtj<01>|<02>S||vSdS)N<><4E><EFBFBD><EFBFBD><EFBFBD>)<02>.gz<67>.brF)rLr!rn)r!rX<00>uncompressed_pathr%r%r&ra<00>s   z WhiteNoise.is_compressed_variantcCs<>|durtj<01>|<01>st|<01><01>tg<00>}|<00>|||<02>|<00>|||<02>|jr'd|d<|jdur3|<00>|||<02>t ||<04>
<EFBFBD>||d|dd<05>d<06>S)N<>*zAccess-Control-Allow-Originrrrs)<02>gzip<69>br)rX<00> encodings) rLr!<00>existsr r<00>add_mime_headers<72>add_cache_headersrrr <00>items)r2r!r"rXrEr%r%r&rd<00>s
<06>zWhiteNoise.get_static_filecCsF|j<00>|<02>}|<04>d<01>rdt|j<04>i}ni}|jdt|<04>fi|<05><01>dS)Nztext/rz Content-Type)r-<00>get_typerkrr<00>
add_header)r2rEr!r"<00>
media_type<EFBFBD>paramsr%r%r&rz<00>s

zWhiteNoise.add_mime_headerscCsD|<00>||<03>rd<01>|j<02>|d<dS|jdur d|j<03>d<04>|d<dSdS)Nzmax-age={}, public, immutable<6C> Cache-Control<6F>max-age=<3D>, public)r<00>format<61>FOREVERr)r2rEr!r"r%r%r&r{<00>s  <0C>
<04>zWhiteNoise.add_cache_headerscCsdS)z<>
This should be implemented by sub-classes (see e.g. WhiteNoiseMiddleware)
or by setting the `immutable_file_test` config option
Fr%ror%r%r&r<00>szWhiteNoise.immutable_file_testcCsv||dkr|<01>d<01>dd}n|||jkrd}n
td|<01>d|<02><00><04><01>|jdur3dd|j<03>d <09>i}ni}t||d
<EFBFBD>S) z<>
Return a relative 302 redirect
We use relative redirects as we don't know the absolute URL the app is
being hosted under
rV<00><><EFBFBD><EFBFBD><EFBFBD>z./zCannot handle redirect: z > Nr<4E>r<>r<>)rE)<05>splitr<00>
ValueErrorrr
)r2<00>from_url<72>to_urlr`rEr%r%r&rc<00>s 
 zWhiteNoise.redirect)NN)rrrrrrrrrrrrrrrrr)<15>__name__<5F>
__module__<EFBFBD> __qualname__r<5F>r5r><00> staticmethodr:r1rRr^r9rirjrhrardrzr{rrcr%r%r%r&rs@<02> <0E>1


  
 
 rccs@<00>t<00>|<00>D]}|<01><02>rt|j<04>EdHq|j|<01><05>fVqdS)zR
Recurse the given directory yielding (pathname, os.stat(pathname)) pairs
N)rL<00>scandir<69>is_dirrZr!<00>stat)r3<00>entryr%r%r&rZs <02><04>rZ)<19>
__future__rrLr+rS<00> posixpathr<00>typingr<00>wsgiref.headersr<00> wsgiref.utilr<00>whitenoise.media_typesr<00>whitenoise.respondersrr r
r <00>whitenoise.string_utilsr r rrZr%r%r%r&<00><module>s$             n