
    CCf                         d dl Z d dlZd dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZ  G d d      Z G d d      Zded	ej                  fd
Zy)    N)HeadersMutableHeaders)ASGIAppMessageReceiveScopeSendc            	       @    e Zd Z	 ddedededdfdZdeded	eddfd
Z	y)GZipMiddlewareappminimum_sizecompresslevelreturnNc                 .    || _         || _        || _        y N)r   r   r   selfr   r   r   s       Y/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/starlette/middleware/gzip.py__init__zGZipMiddleware.__init__
   s     (*    scopereceivesendc                   K   |d   dk(  r_t        |      }d|j                  dd      v r?t        | j                  | j                  | j
                        } ||||       d {    y | j                  |||       d {    y 7 !7 w)Ntypehttp)r   gzipAccept-Encoding )r   )r   getGZipResponderr   r   r   )r   r   r   r   headers	responders         r   __call__zGZipMiddleware.__call__   s     =F"E*G%6;;)HHd//t?Q?Q	  w555hhugt,,, 6,s$   A"B
$B%B
 BB
B
)i  	   )
__name__
__module____qualname__r   intr   r   r   r	   r$    r   r   r   r   	   sK    JK++*-+DG+	+	-E 	-G 	-4 	-D 	-r   r   c            	       N    e Zd ZddedededdfdZdeded	eddfd
Z	de
ddfdZy)r!   r   r   r   r   Nc                     || _         || _        t        | _        i | _        d| _        d| _        t        j                         | _	        t        j                  d| j                  |      | _        y )NFwb)modefileobjr   )r   r   unattached_sendr   initial_messagestartedcontent_encoding_setioBytesIOgzip_bufferr   GzipFile	gzip_filer   s       r   r   zGZipResponder.__init__   sZ    ()	(*$)!::<t//}
r   r   r   r   c                 h   K   || _         | j                  ||| j                         d {    y 7 wr   )r   r   send_with_gzip)r   r   r   r   s       r   r$   zGZipResponder.__call__*   s)     	hhugt':':;;;s   (202messagec                   K   |d   }|dk(  r*|| _         t        | j                   d         }d|v | _        y |dk(  r\| j                  rP| j                  s*d| _        | j	                  | j                          d {    | j	                  |       d {    y |dk(  rD| j                  s7d| _        |j                  dd	      }|j                  d
d      }t        |      | j                  k  r?|s=| j	                  | j                          d {    | j	                  |       d {    y |s| j                  j                  |       | j                  j                          | j                  j                         }t        | j                   d         }d|d<   t        t        |            |d<   |j                  d       ||d<   | j	                  | j                          d {    | j	                  |       d {    y t        | j                   d         }d|d<   |j                  d       |d= | j                  j                  |       | j                  j                         |d<   | j                  j!                  d       | j                  j#                          | j	                  | j                          d {    | j	                  |       d {    y |dk(  r|j                  dd	      }|j                  d
d      }| j                  j                  |       |s| j                  j                          | j                  j                         |d<   | j                  j!                  d       | j                  j#                          | j	                  |       d {    y y 7 67  7 7 7 7 7 7 7 w)Nr   zhttp.response.startr"   )rawzcontent-encodingzhttp.response.bodyTbodyr   	more_bodyFr   zContent-EncodingzContent-Lengthr   r   )r1   r   r3   r2   r   r    lenr   r8   writecloser6   getvaluer   stradd_vary_headerseektruncate)r   r;   message_typer"   r>   r?   s         r   r:   zGZipResponder.send_with_gzip.   s4    v00 $+D $"6"6y"ABG(:g(ED%11d6O6O<<#ii 4 4555))G$$$11$,,DL;;vs+DK7I4y4,,,Yii 4 4555ii((($$T*$$&''002(T-A-A)-LM.4*+,/D	N()''(9:"&ii 4 4555ii((( )T-A-A)-LM.4*+''(9:,-$$T*"&"2"2";";"=  %%a(  ))+ii 4 4555ii(((11;;vs+DK7INN  &$$&"..779GFO!!!$%%'))G$$$ 2O 6$ 6( 6( 6( %s   A7O9N/:ON2A;ON5O'N8(B?O'N;(O N>COOOOCO(O)O2O5O8O;O>OOOO)r%   )r&   r'   r(   r   r)   r   r   r   r	   r$   r   r:   r*   r   r   r!   r!      sX    

G 

3 

s 

SW 

<E <G <4 <D <?%G ?% ?%r   r!   r;   r   c                     K   t        d      w)Nzsend awaitable not set)RuntimeError)r;   s    r   r0   r0   p   s     
/
00s   )r   r4   typingstarlette.datastructuresr   r   starlette.typesr   r   r   r   r	   r   r!   NoReturnr0   r*   r   r   <module>rO      sE     	  < B B- -(P% P%f17 1v 1r   