
     f                     J   U d dl mZmZmZmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZ ddlmZ ddlmZmZmZmZmZ ddlmZmZ dgZeegef         Zded	ed
dfdZded	ed
dfdZdeeef         d	ed
dfdZ G d d          Z  G d de           Z! G d de           Z" G d de           Z#eeeee         ee         f         ee         f         eee$ee          f         eeeef         egdf         eeegdf         f         f         Z%eefeeefeeefeee"e!e#diZ&e%e'd<   dS )    )AnyCallableDictListTupleTypeUnion   )DataEndOfMessageEventInformationalResponseRequestResponse)Headers)CLIENTIDLE	SEND_BODYSEND_RESPONSESERVER)LocalProtocolErrorSentinelWRITERSheaderswritereturnNc                     | j         }|D ]\  }}}|dk    r |d||fz             |D ]\  }}}|dk    r |d||fz              |d           d S )Ns   hosts   %s: %s
   
)_full_items)r   r   	raw_itemsraw_namenamevalues         O/var/www/api.educacionweb.es/myenv/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    requestc                     | 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   )r'   r   s     r$   write_requestr.   $   sV    v%% !7888	E
7>7>"B
BCCC'/5)))))r&   responsec                     | 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   )r/   r   status_bytess      r$   write_any_responser7   ,   sw     && !7888x+,,33G<<L 
E
<"A
ABBB("E*****r&   c                   J    e Zd ZdededdfdZdededdfdZdededdfd	Z	dS )

BodyWritereventr   r   Nc                     t          |          t          u r|                     |j        |           d S t          |          t          u r|                     |j        |           d S J N)typer   	send_datadatar   send_eomr   )selfr:   r   s      r$   __call__zBodyWriter.__call__?   sa    ;;$NN5:u-----%[[L((MM%-/////Lr&   r?   c                     d S r<    rA   r?   r   s      r$   r>   zBodyWriter.send_dataG       r&   r   c                     d S r<   rD   rA   r   r   s      r$   r@   zBodyWriter.send_eomJ   rF   r&   )
__name__
__module____qualname__r   WriterrB   bytesr>   r   r@   rD   r&   r$   r9   r9   >   s        e F t    e F t      4      r&   r9   c                   F    e Zd ZdeddfdZdededdfdZdededdfd	Z	dS )
ContentLengthWriterlengthr   Nc                     || _         d S r<   )_length)rA   rP   s     r$   __init__zContentLengthWriter.__init__U   s    r&   r?   r   c                     | xj         t          |          z  c_         | j         dk     rt          d           ||           d S )Nr   z)Too much data for declared Content-Length)rR   lenr   rE   s      r$   r>   zContentLengthWriter.send_dataX   sE    D		!<!$%PQQQdr&   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)rR   r   rH   s      r$   r@   zContentLengthWriter.send_eom^   sB    <1$%RSSS 	N$%LMMM	N 	Nr&   )
rI   rJ   rK   intrS   rM   rL   r>   r   r@   rD   r&   r$   rO   rO   T   s        s t    e F t    N N N4 N N N N N Nr&   rO   c                   6    e Zd ZdededdfdZdededdfdZdS )ChunkedWriterr?   r   r   Nc                 p    |sd S  |dt          |          z              ||            |d           d S )Ns   %x
r   )rU   rE   s      r$   r>   zChunkedWriter.send_dataf   sJ      	Fi#d))#$$$dgr&   r   c                 <     |d           t          ||           d S )Ns   0
)r%   rH   s      r$   r@   zChunkedWriter.send_eomo   s%    hgu%%%%%r&   rI   rJ   rK   rM   rL   r>   r   r@   rD   r&   r$   rY   rY   e   sf        e F t    & & &4 & & & & & &r&   rY   c                   6    e Zd ZdededdfdZdededdfdZdS )Http10Writerr?   r   r   Nc                      ||           d S r<   rD   rE   s      r$   r>   zHttp10Writer.send_datau   s    dr&   r   c                 (    |rt          d          d S )Nz&can't send trailers to HTTP/1.0 client)r   rH   s      r$   r@   zHttp10Writer.send_eomx   s&     	O$%MNNN	O 	Or&   r\   rD   r&   r$   r^   r^   t   so        e F t    O O O4 O O O O O Or&   r^   )chunkedzcontent-lengthzhttp/1.0)(typingr   r   r   r   r   r   r	   _eventsr   r   r   r   r   r   _headersr   _stater   r   r   r   r   _utilr   r   __all__rM   rL   r%   r.   r7   r9   rO   rY   r^   r2   WritersTyper   __annotations__rD   r&   r$   <module>rj      s   A @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ X X X X X X X X X X X X X X X X       B B B B B B B B B B B B B B / / / / / / / /+	5'3,	7 6 d    *7 *6 *d * * * *+)834+=C+	+ + + +$       ,N N N N N* N N N"& & & & &J & & &O O O O O: O O O 	%XX.
/h
?@	S$z""#%-x78&A4GH'6"D()	+ TNMTN&]/ -  		 	 	 	 	 	r&   