
    WhM                         d dl mZmZ d dlmZmZmZmZmZ d dl	m
Z
 dgZd Zd Zd Z G d d	          Z G d
 de          Z G d de          Z G d de          ZeefeeefeeefeeeeediZdS )   )DataEndOfMessage)CLIENTIDLE	SEND_BODYSEND_RESPONSESERVERLocalProtocolErrorWRITERSc                     | j         }|D ]\  }}}|dk    r |d||fz             |D ]\  }}}|dk    r |d||fz              |d           d S )Ns   hosts   %s: %s
   
)_full_items)headerswrite	raw_itemsraw_namenamevalues         R/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/h11/_writers.pywrite_headersr      s     #I!* 5 5$7??E-8U"33444!* 5 5$7??E-8U"33444	E'NNNNN    c                     | j         dk    rt          d           |d| j        | j        fz             t	          | j        |           d S )N   1.1I only send HTTP/1.1s   %s %s HTTP/1.1
)http_versionr   methodtargetr   r   )requestr   s     r   write_requestr       sV    v%% !7888	E
7>7>"B
BCCC'/5)))))r   c                     | j         dk    rt          d          t          | j                                      d          } |d|| j        fz             t          | j        |           d S )Nr   r   asciis   HTTP/1.1 %s %s
)r   r   strstatus_codeencodereasonr   r   )responser   status_bytess      r   write_any_responser)   '   su    && !7888x+,,33G<<L 
E
<"A
ABBB("E*****r   c                       e Zd Zd ZdS )
BodyWriterc                     t          |          t          u r|                     |j        |           d S t          |          t          u r|                     |j        |           d S J N)typer   	send_datadatar   send_eomr   )selfeventr   s      r   __call__zBodyWriter.__call__8   sa    ;;$NN5:u-----%[[L((MM%-/////5r   N)__name__
__module____qualname__r4    r   r   r+   r+   7   s#            r   r+   c                        e Zd Zd Zd Zd ZdS )ContentLengthWriterc                     || _         d S r-   )_length)r2   lengths     r   __init__zContentLengthWriter.__init__H   s    r   c                     | xj         t          |          z  c_         | j         dk     rt          d           ||           d S )N    z)Too much data for declared Content-Length)r<   lenr   r2   r0   r   s      r   r/   zContentLengthWriter.send_dataK   sE    D		!<!$%PQQQdr   c                 \    | j         dk    rt          d          |rt          d          d S )Nr@   z+Too little data for declared Content-Lengthz%Content-Length and trailers don't mix)r<   r   r2   r   r   s      r   r1   zContentLengthWriter.send_eomQ   sB    <1$%RSSS 	N$%LMMM	N 	Nr   N)r5   r6   r7   r>   r/   r1   r8   r   r   r:   r:   G   sF            N N N N Nr   r:   c                       e Zd Zd Zd ZdS )ChunkedWriterc                 p    |sd S  |dt          |          z              ||            |d           d S )Ns   %x
r   )rA   rB   s      r   r/   zChunkedWriter.send_dataY   sJ      	Fi#d))#$$$dgr   c                 <     |d           t          ||           d S )Ns   0
)r   rD   s      r   r1   zChunkedWriter.send_eomb   s%    hgu%%%%%r   Nr5   r6   r7   r/   r1   r8   r   r   rF   rF   X   s2          & & & & &r   rF   c                       e Zd Zd Zd ZdS )Http10Writerc                      ||           d S r-   r8   rB   s      r   r/   zHttp10Writer.send_datah   s    dr   c                 (    |rt          d          d S )Nz&can't send trailers to HTTP/1.0 clientr
   rD   s      r   r1   zHttp10Writer.send_eomk   s&     	O$%MNNN	O 	Or   NrI   r8   r   r   rK   rK   g   s7          O O O O Or   rK   )chunkedzcontent-lengthzhttp/1.0N)_eventsr   r   _stater   r   r   r   r	   _utilr   __all__r   r    r)   r+   r:   rF   rK   r   r8   r   r   <module>rS      s   ( ' ' ' ' ' ' ' B B B B B B B B B B B B B B % % % % % %+  * * *+ + +         N N N N N* N N N"& & & & &J & & &O O O O O: O O O TNMTN&]/ -  		r   