o
    Dh                     @   s|   d dl Z ddlmZmZ ddlmZmZmZ e dZ	e e
dZe e
dZddd	Zd
d Zdd Zdd ZdS )    N   )
field_namefield_value)bytesifyLocalProtocolErrorvalidates   [0-9]+asciiFc                 C   s   g }d}d}| D ]U\}}|s$t |}t |}tt|d| tt|d| | }|dkr:|r2tdtt|d d}|dkrV|rFtd	d
d| }|dkrTtdd
dd}|||f q|S )NFzIllegal header name {!r}zIllegal header value {!r}s   content-lengthzmultiple Content-Length headerszbad Content-LengthTs   transfer-encodingz"multiple Transfer-Encoding headersi  )error_status_hints   chunkedz,Only Transfer-Encoding: chunked is supported)r   r   _field_name_re_field_value_relowerr   _content_length_reappend)headers_parsednew_headerssaw_content_lengthsaw_transfer_encodingnamevalue r   G/var/www/html/env_mimamsha/lib/python3.10/site-packages/h11/_headers.pynormalize_and_validateA   s:   r   c                 C   sL   g }| D ]\}}||kr#|  }|dD ]}| }|r"|| qq|S )N   ,)r   splitstripr   )r   r   out
found_namefound_raw_valuefound_split_valuer   r   r   get_comma_headerj   s   $
r    c                 C   sT   g }| D ]\}}||kr| ||f q|D ]	}| ||f qt|| d d < d S )N)r   r   )r   r   
new_valuesr   r   r   	new_valuer   r   r   set_comma_header   s   r#   c                 C   s"   | j dk rdS t| jd}d|v S )Ns   1.1Fs   expects   100-continue)http_versionr    r   )requestexpectr   r   r   has_expect_100_continue   s   
r'   )F)re_abnfr   r   _utilr   r   r   compiler   encoder
   r   r   r    r#   r'   r   r   r   r   <module>   s    
8
)/