a  zen@s.ddlZedZdddZGdddZdS) Nz[ \(\)<>@,;:\\"/\[\]\?=]cCsX|durPt|dkrP|s"t|rB|dddd}d||fSd||fSn|SdS)Nr\z\\"z\"z%s="%s"z%s=%s)len tspecialssearchreplace)Zparamvaluequoter C/opt/bitninja-python-dojo/embedded/lib/python3.9/wsgiref/headers.py _formatparam s  r c@seZdZd$ddZddZddZdd Zd d Zd d ZddZ ddZ d%ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#ZdS)&HeadersNcCs.|dur |ng}t|tur$td||_dS)Nz+Headers must be a list of name/value tuples)typelist TypeError_headers)selfZheadersr r r __init__s  zHeaders.__init__cCs&t|tur|Stdt|dS)Nz1Header names/values must be of type str (got {0}))rstrAssertionErrorformatrepr)rr r r r _convert_string_type)s  zHeaders._convert_string_typecCs t|jSN)rrrr r r __len__0szHeaders.__len__cCs&||=|j||||fdSr)rappendr)rnamevalr r r __setitem__4szHeaders.__setitem__cs0|fdd|jD|jdd<dS)Ncs g|]}|dkr|qS)rlower.0Zkvrr r @z'Headers.__delitem__..rr"rrrr r%r __delitem__:szHeaders.__delitem__cCs ||Srgetr)r r r __getitem__Bs zHeaders.__getitem__cCs||duSrr+r)r r r __contains__MszHeaders.__contains__cs"|fdd|jDS)Ncs$g|]}|dkr|dqS)rrr!r#r%r r r&[r'z#Headers.get_all..r(r)r r%r get_allRszHeaders.get_allcCs6||}|jD]\}}||kr|Sq|Srr()rrdefaultkvr r r r,^s   z Headers.getcCsdd|jDS)NcSsg|] \}}|qSr r r$r1r2r r r r&or'z Headers.keys..rrr r r keysgsz Headers.keyscCsdd|jDS)NcSsg|] \}}|qSr r r3r r r r&yr'z"Headers.values..r4rr r r valuesqszHeaders.valuescCs|jddSrr4rr r r items{sz Headers.itemscCsd|jj|jfS)Nz%s(%r)) __class____name__rrr r r __repr__szHeaders.__repr__cCsddd|jDddgS)Nz cSsg|] }d|qS)z%s: %sr r#r r r r&r'z#Headers.__str__..)joinrrr r r __str__szHeaders.__str__cCst|dS)Nz iso-8859-1)rencoderr r r __bytes__szHeaders.__bytes__cCs:||}|dur2|j||||f|S|SdSr)r,rrr)rrr resultr r r setdefaults zHeaders.setdefaultcKsg}|dur ||}|||D]P\}}||}|durV||ddq(||}|t|dd|q(|j||d|fdS)N_-z; )rrr7rr rr<)r_name_valueZ_paramspartsr1r2r r r add_headers    zHeaders.add_header)N)N)r9 __module__ __qualname__rrrr r*r-r.r/r,r5r6r7r:r=r?rArGr r r r rs"       r)Nr)recompilerr rr r r r  s