]n @ sD d d l Z e j d Z d d d d Z Gd d d Z d S) Nz[ \(\)<>@,;:\\"/\[\]\?=] c C sx | d k rp t | d k rp | s3 t j | r_ | j d d j d d } d | | f Sd | | f Sn | Sd S)Nr \z\\"z\"z%s="%s"z%s=%s)len tspecialssearchreplace)Zparamvaluequote r ,/opt/alt/python35/lib64/python3.5/headers.py_formatparam
s r
c @ s e Z d Z d d d Z d d Z d d Z d d Z d
d Z d d
Z d d Z d d Z
d d d Z d d Z d d Z
d d Z d d Z d d Z d d Z d d! Z d" d# Z d S)$HeadersNc C sC | d k r | n g } t | t k r6 t d | | _ d S)Nz+Headers must be a list of name/value tuples)typelist TypeError_headers)selfZheadersr r r __init__ s
zHeaders.__init__c C s5 t | t k r | St d j t | d S)Nz1Header names/values must be of type str (got {0}))r strAssertionErrorformatrepr)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__0 s zHeaders.__len__c C s3 | | =| j j | j | | j | f d S)N)r appendr )r namevalr r r __setitem__4 s zHeaders.__setitem__c sB | j j f d d | j D | j d d