
    9Cg                         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            	       @    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       K/var/www/api/venv/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;;;;)$(D4EUYUghhh	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   	   sz        + +G +3 +S +Y] + + + +
-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__   s]    ()	(*$)!:<<D$:JZghhhr   r   r   r   c                    K   || _         | j        5  | j        5  |                     ||| j                   d {V  d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S r   )r   r7   r9   r   send_with_gzip)r   r   r   r   s       r   r&   zGZipResponder.__call__$   s&     	 	@ 	@t~ 	@ 	@((5'4+>?????????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s3   A #AA A	A A	A  A$'A$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        i iG i3 is iSW i i i i@E @G @4 @D @ @ @ @
?%G ?% ?% ?% ?% ?% ?% ?%r   r#   r<   r   c                 $   K   t          d          )Nzsend awaitable not set)RuntimeError)r<   s    r   r1   r1   k   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- - - - - - - - O% O% O% O% O% O% O% O%d17 1v 1 1 1 1 1 1r   