
    Q}bg                         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dS )    N)HeadersMutableHeaders)ASGIAppMessageReceiveScopeSendc            	       B    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S )GZipMiddleware  	   appminimum_sizecompresslevelreturnNc                 0    || _         || _        || _        d S N)r   r   r   selfr   r   r   s       l/home/e360mart.nyusoft.in/public_html/e360mart_env/lib/python3.11/site-packages/starlette/middleware/gzip.py__init__zGZipMiddleware.__init__
   s!     (*    scopereceivesendc                   K   |d         dk    r^t          |          }d|                    dd          v r6t          | j        | j        | j                  } ||||           d {V  d S |                     |||           d {V  d S )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;;;;)Hd/t?Q  	  iw555555555hhugt,,,,,,,,,,,r   )r   r   )
__name__
__module____qualname__r   intr   r   r   r	   r&    r   r   r   r   	   s        JK+ ++*-+DG+	+ + + +	-E 	-G 	-4 	-D 	- 	- 	- 	- 	- 	-r   r   c            	       P    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dS )r#   r   r   r   r   r   Nc                     || _         || _        t          | _        i | _        d| _        d| _        t          j                    | _	        t          j        d| j	        |          | _        d S )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__   sc    ()	(*$)!:<<t/}
 
 
r   r   r   r   c                 \   K   || _         |                     ||| j                   d {V  d S r   )r   r   send_with_gzip)r   r   r   r   s       r   r&   zGZipResponder.__call__*   s>      	hhugt':;;;;;;;;;;;r   messagec                   K   |d         }|dk    r-|| _         t          | j         d                   }d|v | _        d S |dk    rR| j        rK| j        s'd| _        |                     | j                    d {V  |                     |           d {V  d S |dk    rT| j        sLd| _        |                    dd	          }|                    d
d          }t          |          | j        k     r?|s=|                     | j                    d {V  |                     |           d {V  d S |s| j        	                    |           | j        
                                 | j                                        }t          | j         d                   }d|d<   t          t          |                    |d<   |                    d           ||d<   |                     | j                    d {V  |                     |           d {V  d S t          | j         d                   }d|d<   |                    d           |d= | j        	                    |           | j                                        |d<   | j                            d           | j                                         |                     | j                    d {V  |                     |           d {V  d S |dk    r|                    dd	          }|                    d
d          }| j        	                    |           |s| j        
                                 | j                                        |d<   | j                            d           | j                                         |                     |           d {V  d S d S )Nr   zhttp.response.startr$   )rawzcontent-encodingzhttp.response.bodyTbodyr   	more_bodyFr   zContent-EncodingzContent-Lengthr    r   )r2   r   r4   r3   r   r"   lenr   r9   writecloser7   getvaluer   stradd_vary_headerseektruncate)r   r<   message_typer$   r?   r@   s         r   r;   zGZipResponder.send_with_gzip.   s'     v000 $+D $"6y"ABBBG(:g(ED%%%111d6O1< 6#ii 4555555555))G$$$$$$$$$$$111$,1DL;;vs++DK77I4yy4,,,Y,ii 4555555555ii((((((((((( )$$T***$$&&&'0022(T-A)-LMMM.4*+,/D		NN()''(9:::"&ii 4555555555ii((((((((((( )T-A)-LMMM.4*+''(9:::,-$$T***"&"2";";"="= %%a((( ))+++ii 4555555555ii(((((((((((111;;vs++DK77IN  &&& '$$&&&".7799GFO!!!$$$%%'''))G$$$$$$$$$$$ 21r   )r   )r'   r(   r)   r   r*   r   r   r   r	   r&   r   r;   r+   r   r   r#   r#      s        

 

G 

3 

s 

SW 

 

 

 

<E <G <4 <D < < < <?%G ?% ?% ?% ?% ?% ?% ?%r   r#   r<   r   c                 $   K   t          d          )Nzsend awaitable not set)RuntimeError)r<   s    r   r1   r1   p   s      
/
0
00r   )r   r5   typingstarlette.datastructuresr   r   starlette.typesr   r   r   r   r	   r   r#   NoReturnr1   r+   r   r   <module>rP      s     				  < < < < < < < < B B B B B B B B B B B B B B- - - - - - - -(P% P% P% P% P% P% P% P%f17 1v 1 1 1 1 1 1r   