
    ,h                        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<   y)    )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(  s |d||fz          |D ]  \  }}}|dk7  s |d||fz           |d       y )Ns   hosts   %s: %s
   
)_full_items)r   r   	raw_itemsraw_namenamevalues         N/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/h11/_writers.pywrite_headersr%      sx     ##I!* 5$7?-8U"3345 "+ 5$7?-8U"3345 
'N    requestc                     | j                   dk7  rt        d       |d| j                  | j                  fz         t	        | j
                  |       y )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.   $   sE    v% !788	
7>>7>>"B
BC'//5)r&   responsec                     | j                   dk7  rt        d      t        | j                        j	                  d      } |d|| j
                  fz         t        | j                  |       y )Nr)   r*   asciis   HTTP/1.1 %s %s
)r+   r   strstatus_codeencodereasonr%   r   )r/   r   status_bytess      r$   write_any_responser7   ,   sb     & !788x++,33G<L 

<"A
AB(""E*r&   c                   H    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	y)

BodyWritereventr   r   Nc                     t        |      t        u r| j                  |j                  |       y t        |      t        u r| j                  |j                  |       y J N)typer   	send_datadatar   send_eomr   )selfr:   r   s      r$   __call__zBodyWriter.__call__?   sA    ;$NN5::u-%[L(MM%--/r&   r?   c                      y r<    rA   r?   r   s      r$   r>   zBodyWriter.send_dataG       r&   r   c                      y 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   >   sP    e F t e F t   4 r&   r9   c                   D    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	y)
ContentLengthWriterlengthr   Nc                     || _         y 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       ||       y )Nr   z)Too much data for declared Content-Length)rR   lenr   rE   s      r$   r>   zContentLengthWriter.send_dataX   s3    D	!<<!$%PQQdr&   r   c                 R    | j                   dk7  rt        d      |rt        d      y )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^   s.    <<1$%RSS$%LMM r&   )
rI   rJ   rK   intrS   rM   rL   r>   r   r@   rD   r&   r$   rO   rO   T   sM    s t e F t N N N4 Nr&   rO   c                   4    e Zd ZdededdfdZdededdfdZy)ChunkedWriterr?   r   r   Nc                 R    |sy  |dt        |      z          ||        |d       y )Ns   %x
r   )rU   rE   s      r$   r>   zChunkedWriter.send_dataf   s)     i#d)#$dgr&   r   c                 ,     |d       t        ||       y )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   s6    e F t & & &4 &r&   rY   c                   4    e Zd ZdededdfdZdededdfdZy)Http10Writerr?   r   r   Nc                      ||       y r<   rD   rE   s      r$   r>   zHttp10Writer.send_datau   s	    dr&   r   c                     |rt        d      y )Nz&can't send trailers to HTTP/1.0 client)r   rH   s      r$   r@   zHttp10Writer.send_eomx   s    $%MNN r&   r\   rD   r&   r$   r^   r^   t   s:    e F t O O O4 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  B B /+	5'3,	7 6 d *7 *6 *d *+)834+=C+	+$ ,N* N"&J &O: O 	%XX.
/h
?@	S$z""#%-x78&A4GH'6"D()	+ TNMTN&]/ - 		 	r&   