
    z%in                     N    	 d dl Z  e j                  d      ZddZ G d d      Zy)    Nz[ \(\)<>@,;:\\"/\[\]\?=]c                     	 |Vt        |      dkD  rH|st        j                  |      r*|j                  dd      j                  dd      }| d|dS | d|S | S )Nr   \z\\"z\"z="=)len	tspecialssearchreplace)paramvaluequotes      C/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/wsgiref/headers.py_formatparamr      sa     SZ!^I$$U+MM$/77UCE %u--#U++    c                   x    e Zd Z	 ddZd Zd Zd Zd Zd Zd Z	d	 Z
dd
Zd Zd Zd Zd Zd Zd Zd Zd Zy)HeadersNc                 V    ||ng }t        |      t        urt        d      || _        y )Nz+Headers must be a list of name/value tuples)typelist	TypeError_headers_convert_string_type)selfheaderskvs       r   __init__zHeaders.__init__   s0    $0'b=$IJJr   c                 p    	 t        |      t        u r|S t        dj                  t	        |                  )Nz1Header names/values must be of type str (got {0}))r   strAssertionErrorformatrepr)r   r   s     r   r   zHeaders._convert_string_type)   s6    ';#L %%+VDK%8: 	:r   c                 .    	 t        | j                        S N)r   r   r   s    r   __len__zHeaders.__len__0   s    G4==!!r   c                     	 | |= | j                   j                  | j                  |      | j                  |      f       y r$   )r   appendr   )r   namevals      r   __setitem__zHeaders.__setitem__4   s=    (J&&t,d.G.G.LM	Or   c                     	 | j                  |j                               }| j                  D cg c]  }|d   j                         |k7  s| c}| j                  d d  y c c}w )Nr   r   lowerr   r   r)   kvs      r   __delitem__zHeaders.__delitem__:   sP    	 ((6)-P2"Q%++-4:OBPaPs   A A c                 &    	 | j                  |      S r$   getr   r)   s     r   __getitem__zHeaders.__getitem__B   s    	 xx~r   c                 *    	 | j                  |      d uS r$   r3   r5   s     r   __contains__zHeaders.__contains__M   s    =xx~T))r   c                     	 | j                  |j                               }| j                  D cg c]  }|d   j                         |k(  s|d     c}S c c}w )Nr      r-   r/   s      r   get_allzHeaders.get_allR   sL    	 ((6 $E"A1D1EEEs   AAc                     	 | j                  |j                               }| j                  D ]  \  }}|j                         |k(  s|c S  |S r$   r-   )r   r)   defaultr   r   s        r   r4   zHeaders.get^   sK    H((6== 	CAawwy$	 r   c                 N    	 | j                   D cg c]  \  }}|	 c}}S c c}}w r$   r   r   r   r   s      r   keyszHeaders.keysg   %    	 #mm,da,,,   !c                 N    	 | j                   D cg c]  \  }}|	 c}}S c c}}w r$   r?   r@   s      r   valueszHeaders.valuesq   rB   rC   c                 "    	 | j                   d d  S r$   r?   r%   s    r   itemszHeaders.items{   s    	 }}Qr   c                 N    | j                   j                  d| j                  dS )N())	__class____name__r   r%   s    r   __repr__zHeaders.__repr__   s    >>22DMMBBr   c                 p    	 dj                  | j                  D cg c]  }d|z  	 c}ddgz         S c c}w )Nz
z%s: %s )joinr   )r   r0   s     r   __str__zHeaders.__str__   s5    	2{{DMMBbHrMBBr7JKKBs   3c                 6    t        |       j                  d      S )Nz
iso-8859-1)r   encoder%   s    r   	__bytes__zHeaders.__bytes__   s    4y--r   c                     	 | j                  |      }|=| j                  j                  | j                  |      | j                  |      f       |S |S r$   )r4   r   r(   r   )r   r)   r   results       r   
setdefaultzHeaders.setdefault   sW    	 $>MM  $";";D"A))%0"2 3LMr   c           	         	 g }|"| j                  |      }|j                  |       |j                         D ]v  \  }}| j                  |      }|"|j                  |j                  dd             ;| j                  |      }|j                  t	        |j                  dd      |             x | j
                  j                  | j                  |      dj                  |      f       y )N_-z; )r   r(   rG   r
   r   r   rP   )r   _name_value_paramspartsr   r   s          r   
add_headerzHeaders.add_header   s    	 ..v6FLL MMO 	CDAq))!,AyQYYsC01--a0\!))C*=qAB	C 	d77>		%@PQRr   r$   )rL   
__module____qualname__r   r   r&   r+   r1   r6   r8   r;   r4   rA   rE   rG   rM   rQ   rT   rW   r_    r   r   r   r      s`    6-:"OQ	*
	F-- CL
.Sr   r   )Nr:   )recompiler   r   r   rb   r   r   <module>re      s3    
BJJ23	\S \Sr   