3 öLÖj ã @ s8 d dl Z e jdƒZe jdƒZd dd„ZG dd„ dƒZdS ) é Nz[ \(\)<>@,;:\\"/\[\]\?=]z[\x00-\x1F\x7F]é c C sX |d k rPt |ƒdkrP|s"tj|ƒrB|jddƒjddƒ}d| |f S d| |f S n| S d S )Nr ú\z\\ú"z\"z%s="%s"z%s=%s)ÚlenÚ tspecialsÚsearchÚreplace)ZparamÚvalueZquote© r ú'/usr/lib64/python3.6/wsgiref/headers.pyÚ_formatparam s r c @ s˜ e Zd Zd$dd„Zdd„ Zdd„ Zdd „ Zd d„ Zdd „ Zdd„ Z dd„ Z d%dd„Zdd„ Zdd„ Z dd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ ZdS )&ÚHeadersNc C s. |d k r|ng }t |ƒtk r$tdƒ‚|| _d S )Nz+Headers must be a list of name/value tuples)ÚtypeÚlistÚ TypeErrorÚ_headers)ÚselfZheadersr r r Ú__init__ s zHeaders.__init__c C s8 t |ƒtkr"tj|ƒrtdƒ‚|S tdjt|ƒƒƒ‚d S )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)r r r r r Ú_convert_string_type* s zHeaders._convert_string_typec C s t | jƒS )N)r r )r r r r Ú__len__3 s zHeaders.__len__c C s&