python (3.12.0)

(root)/
lib/
python3.12/
wsgiref/
__pycache__/
validate.cpython-312.opt-2.pyc

̑e:(	dgZddlZddlZddlZejdZejdZGddeZdZ	dZ
d	ZGd
dZGdd
Z
GddZGddZGddZdZdZdZdZdZdZdZdZy)	validatorNz^[a-zA-Z][a-zA-Z0-9\-_]*$z[\000-\037]ceZdZy)WSGIWarningN)__name__
__module____qualname__D/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/wsgiref/validate.pyrrysr
rc|st|yN)AssertionError)condargss  rassert_r~sd##r
cpt|tur|Stdj|t	|)Nz!{0} must be of type str (got {1}))typestrrformatrepr)valuetitles  rcheck_string_typers6U|s
+225$u+FHHr
c	fd}|S)Nc0tt|dk(dt|d|\}t|gfd}t|d|d<t	|d|d<||}t|duxr|dk7dt|t
|S)	NzTwo arguments requiredNo keyword arguments allowedcLtt|dk(xst|dk(d|t|d|d}|d}t|dk(r|d}nd}t|t|t	||t|j
dt|S)NrzInvalid number of arguments: rr)rlencheck_status
check_headerscheck_content_typecheck_exc_infoappendWriteWrapper)rkwstatusheadersexc_infostart_responsestart_response_starteds     rstart_response_wrapperz;validator.<locals>.lint_app.<locals>.start_response_wrappersCIN4c$i1n59;
>F:;!WF1gG4yA~7 '"vw/8$"))$/ 566r

wsgi.inputwsgi.errorsFz>The application must return an iterator, if only an empty list)rr!
check_environInputWrapperErrorWrappercheck_iteratorIteratorWrapper)rr(environr.iteratorr,r-applications     @@rlint_appzvalidator.<locals>.lint_appsD	Q 89B67"&g"$	7&!-W\-B C!-gm.D!E
w(>?$:U):L	N	x x)?@@r
r	)r8r9s` rrrs'AROr
c0eZdZdZdZdZdZdZdZy)r2c||_yr
)input)self
wsgi_inputs  r__init__zInputWrapper.__init__s	
r
ctt|dk(|jj|}tt	|t
u|SNr )rr!r<readrbytesr=rvs   rrBzInputWrapper.reads<D	QDJJOOT"Q5 !r
ctt|dk|jj|}tt	|t
u|SrA)rr!r<readlinerrCrDs   rrGzInputWrapper.readlines>D	QDJJ&Q5 !r
ctt|dk|jj|}tt	|t
u|D]}tt	|tu|SrA)rr!r<	readlinesrlistrC)r=rlineslines    rrIzInputWrapper.readliness^D	Q$

$$d+Ut#$	)DDJ%'(	)r
c#`K|jx}r||jx}ryywr
)rG)r=rLs  r__iter__zInputWrapper.__iter__s/mmo%d%Jmmo%d%s)..ctddy)Nrz input.close() must not be calledrr=s rclosezInputWrapper.closes
56r
N)	rrrr?rBrGrIrNrRr	r
rr2r2s  7r
r2c*eZdZdZdZdZdZdZy)r3c||_yr
)errors)r=wsgi_errorss  rr?zErrorWrapper.__init__	!r
cntt|tu|jj	|yr
)rrrrUwriter=ss  rrYzErrorWrapper.writes$Q3!r
c8|jjyr
)rUflushrQs rr]zErrorWrapper.flushsr
c4|D]}|j|yr
)rY)r=seqrLs   r
writelineszErrorWrapper.writeliness	DJJt	r
ctddy)Nrz!errors.close() must not be calledrPrQs rrRzErrorWrapper.closes
67r
N)rrrr?rYr]r`rRr	r
rr3r3s"8r
r3ceZdZdZdZy)r'c||_yr
)writer)r=wsgi_writers  rr?zWriteWrapper.__init__rWr
cZtt|tu|j|yr
)rrrCrdrZs  r__call__zWriteWrapper.__call__sQ5 !Ar
N)rrrr?rgr	r
rr'r's"r
r'ceZdZdZdZy)PartialIteratorWrapperc||_yr
r7)r=
wsgi_iterators  rr?zPartialIteratorWrapper.__init__s	%
r
c.t|jdSr
)r5r7rQs rrNzPartialIteratorWrapper.__iter__st}}d33r
N)rrrr?rNr	r
rriris&4r
ric*eZdZdZdZdZdZdZy)r5cN||_t||_d|_||_y)NF)original_iteratoriterr7closedcheck_start_response)r=rlrss   rr?zIteratorWrapper.__init__s%!.]+
$8!r
c|Sr
r	rQs rrNzIteratorWrapper.__iter__sr
ct|jdt|j}t	|t
urtdd|d|jt|jdd|_|S)NzIterator read after closedFz!Iterator yielded non-bytestring ()zjThe application returns and we started iterating over its body, but start_response has not yet been called)rrrnextr7rrCrs)r=rEs  r__next__zIteratorWrapper.__next__siDKK(	*7%EQHI$$0D--|
~(,D%r
ctd|_t|jdr|jjyy)NTrR)rrhasattrrprRrQs rrRzIteratorWrapper.closes04))73""((*4r
c|jstjjdt	|jdy)Nz/Iterator garbage collected without being closed)rrsysstderrrYrrQs r__del__zIteratorWrapper.__del__ s0{{JJA
C=	?r
N)rrrr?rNrxrRr~r	r
rr5r5s9
+
?r
r5cbtt|tudt|d|ddD]}t||vd|dD]}t||vd|d|d	dd
d|vrtjdt
|j
D]>}d
|vrtt||tud|dt||d||d@tt|dtud|ddt|ddvd|dzt|dt|d|ddvr tjd|dzt
t|jdxs|djdd|dzt|jdxs|djdd|dz|jd r!tt|d d!k\d"|d z|jdstd|vd#t|jddk7d$y)%Nz&Environment is not of the right type: z (environment: rv)	REQUEST_METHODSERVER_NAMESERVER_PORTwsgi.versionr/r0zwsgi.multithreadzwsgi.multiprocessz
wsgi.run_oncez"Environment missing required key: )HTTP_CONTENT_TYPEHTTP_CONTENT_LENGTHz%Environment should not have the key: z (use z	 instead)QUERY_STRINGzQUERY_STRING is not in the WSGI environment; the cgi module will use sys.argv when this variable is missing, so application errors are more likely.zEnvironmental variable z is not a string: z	 (value: rz wsgi.version should be a tuple (zwsgi.url_scheme)httphttpszwsgi.url_scheme unknown: %rr/r0r)GETHEADPOSTOPTIONSPATCHPUTDELETETRACEzUnknown REQUEST_METHOD: %rSCRIPT_NAME/z$SCRIPT_NAME doesn't start with /: %r	PATH_INFOz"PATH_INFO doesn't start with /: %rCONTENT_LENGTHrzInvalid CONTENT_LENGTH: %rzgOne of SCRIPT_NAME or PATH_INFO are required (PATH_INFO should at least be '/' if SCRIPT_NAME is empty)zOSCRIPT_NAME cannot be '/'; it should instead be '', and PATH_INFO should be '/')rrdictwarningswarnrkeysrtuplecheck_inputcheck_errorsget
startswithint)r6keys  rr1r1's}DMT!='	#$!=	w69;	=	=<17""%s12w
0	11
W$


4
		||~7#:WS\"c)D&
6	7	7D()U2181HJLG%&*;;%0A(BBD%&'( )MM

(73C+DD	M**
6}%005.1GGIK((
4{#..s3,w{/CCE{{#$G,-.!3(73C+DD	F;;}%w&
>	?GKK
&#-	"#r
cJdD]}tt||d|d| y)N)rBrGrIrNzwsgi.input () doesn't have the attribute rrz)r>attrs  rrrhs,="
D)4
!	""r
cJdD]}tt||d|d| y)N)r]rYr`z
wsgi.errors (rr)rVrs  rrrns,0#T*D
"	##r
ct|d}|jddd}tt|dk(d|zt	|}t|dk\d|zt|dks|dd	k7rtjd
|ztyy)NStatusr rrz)Status codes must be three characters: %rdzStatus code is invalid: %r zjThe status string (%r) should be a three-digit integer followed by a single space and a status explanation)rsplitrr!rrrr)r)status_code
status_ints   rr"r"ts
vx
0F,,tQ'*KC!3kAC[!JJ#;jHI
6{Q&)s*


B
!	#+r
c
tt|tud|dt||D]9}tt|tud|dt|tt	|dk(|\}}t|d}t|d}t|j
dk7d	|ztd
|vxrd|vd|zttj|d
|zt|jdxr|jdd|ztj|stdd|dtj|jdd<y)Nz	Headers (z) must be of type list: zIndividual headers (z) must be of type tuple: rHeader namezHeader valuer)zyThe Status header cannot be used; it conflicts with CGI script, and HTTP status is not given through headers (value: %r).
:z,Header names may not contain ':' or '\n': %rzBad header name: %r-_z#Names may not end in '-' or '_': %rrzBad header value: z (bad char: rv)rrrJrr!rlower	header_researchendswithbad_header_value_regroup)r*itemnamers    rr#r#sTDMT!DM	#$CT
e#T$Z
!	"	D	Qe }5!%8

(
"
#	$	D 4S_;dB	D	  &(=(DEDMM#&&At}}S/A+A1D8	:%%e,A)007==a@B
C%Cr
ct|d}t|jddd}d}|D]:\}}t|d}|jdk(s&||vryt	dd|z<||vrt	dd|zyy)	Nrr r)i0rzcontent-typezJContent-Type header found in a %s response, which must not return content.z,No Content-Type header found in headers (%s))rrrrr)r)r*codeNO_MESSAGE_BODYrrs      rr$r$s
vx
0Fv||D!$Q'(D!OBe }5::<>)?*A9<@A
BB?"AGKL#r
c	dt|duxst|tud|dt|y)Nz
exc_info (z) is not a tuple: )rrr)r+s rr%r%s-H7X% 7.6XGIr
cFtt|ttfdy)NzwYou should not return a string as your application iterator, instead return a single-item list containing a bytestring.)r
isinstancerrCrks rr4r4s#
8c5\22	EFr
)__all__rer|rcompilerrWarningrrrrr2r3r'rir5r1rrr"r#r$r%r4r	r
r<module>rs
iT-

BJJ34	 bjj0'
$H5n77@88&44!?!?F?#B"##C2M I
Fr