3 öLÖjã@s8ddlZejdƒZejdƒZd dd„ZGdd„dƒZdS) éNz[ \(\)<>@,;:\\"/\[\]\?=]z[\x00-\x1F\x7F]écCsX|dk rPt|ƒdkrP|s"tj|ƒrB|jddƒjddƒ}d||fSd||fSn|SdS)Nrú\z\\ú"z\"z%s="%s"z%s=%s)ÚlenÚ tspecialsÚsearchÚreplace)ZparamÚvalueZquote©r ú'/usr/lib64/python3.6/wsgiref/headers.pyÚ _formatparams  r c@s˜eZdZd$dd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z d%dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„ZdS)&ÚHeadersNcCs.|dk r |ng}t|ƒtk r$tdƒ‚||_dS)Nz+Headers must be a list of name/value tuples)ÚtypeÚlistÚ TypeErrorÚ_headers)ÚselfZheadersr r r Ú__init__ s  zHeaders.__init__cCs8t|ƒtkr"tj|ƒrtdƒ‚|Stdjt|ƒƒƒ‚dS)Nz)Control characters not allowed in headersz1Header names/values must be of type str (got {0}))rÚstrÚ_control_chars_rerÚ ValueErrorÚAssertionErrorÚformatÚrepr)rr r r r Ú_convert_string_type*s   zHeaders._convert_string_typecCs t|jƒS)N)rr)rr r r Ú__len__3szHeaders.__len__cCs&||=|jj|j|ƒ|j|ƒfƒdS)N)rÚappendr)rÚnameÚvalr r r Ú __setitem__7szHeaders.__setitem__cs0|jˆjƒƒ‰‡fdd„|jDƒ|jdd…<dS)Ncs g|]}|djƒˆkr|‘qS)r)Úlower)Ú.0Úkv)rr r ú Csz'Headers.__delitem__..)rr r)rrr )rr Ú __delitem__=szHeaders.__delitem__cCs |j|ƒS)N)Úget)rrr r r Ú __getitem__Es zHeaders.__getitem__cCs|j|ƒdk S)N)r%)rrr r r Ú __contains__PszHeaders.__contains__cs"|jˆjƒƒ‰‡fdd„|jDƒS)Ncs$g|]}|djƒˆkr|d‘qS)rr)r )r!r")rr r r#^sz#Headers.get_all..)rr r)rrr )rr Úget_allUszHeaders.get_allcCs6|j|jƒƒ}x"|jD]\}}|jƒ|kr|SqW|S)N)rr r)rrÚdefaultÚkÚvr r r r%as  z Headers.getcCsdd„|jDƒS)NcSsg|] \}}|‘qSr r )r!r*r+r r r r#rsz Headers.keys..)r)rr r r Úkeysjsz Headers.keyscCsdd„|jDƒS)NcSsg|] \}}|‘qSr r )r!r*r+r r r r#|sz"Headers.values..)r)rr r r ÚvaluestszHeaders.valuescCs|jdd…S)N)r)rr r r Úitems~sz Headers.itemscCsd|jj|jfS)Nz%s(%r))Ú __class__Ú__name__r)rr r r Ú__repr__ˆszHeaders.__repr__cCsdjdd„|jDƒddgƒS)Nz cSsg|] }d|‘qS)z%s: %sr )r!r"r r r r#Žsz#Headers.__str__..Ú)Újoinr)rr r r Ú__str__‹szHeaders.__str__cCst|ƒjdƒS)Nz iso-8859-1)rÚencode)rr r r Ú __bytes__�szHeaders.__bytes__cCs:|j|ƒ}|dkr2|jj|j|ƒ|j|ƒfƒ|S|SdS)N)r%rrr)rrr Úresultr r r Ú setdefault“s  zHeaders.setdefaultcKsžg}|dk r |j|ƒ}|j|ƒx\|jƒD]P\}}|j|ƒ}|dkrX|j|jddƒƒq*|j|ƒ}|jt|jddƒ|ƒƒq*W|jj|j|ƒdj|ƒfƒdS)NÚ_ú-z; )rrr.rr rr3)rÚ_nameZ_valueZ_paramsÚpartsr*r+r r r Ú add_header s    zHeaders.add_header)N)N)r0Ú __module__Ú __qualname__rrrrr$r&r'r(r%r,r-r.r1r4r6r8r=r r r r r s"        r )Nr)ÚreÚcompilerrr r r r r r Ú s