
    g                         S SK r S SKrS SKrS SKJrJr  S SKJrJrJ	r	J
r
Jr   " S S5      r " S S5      rS\S	\R                  4S
 jrg)    N)HeadersMutableHeaders)ASGIAppMessageReceiveScopeSendc            	       L    \ rS rSrSS\S\S\SS4S jjrS\S	\S
\	SS4S jr
Srg)GZipMiddleware	   appminimum_sizecompresslevelreturnNc                 (    Xl         X l        X0l        g N)r   r   r   selfr   r   r   s       R/home/matz/Project1/venv/lib/python3.13/site-packages/starlette/middleware/gzip.py__init__GZipMiddleware.__init__
   s    (*    scopereceivesendc                   #    US   S:X  aZ  [        US9nSUR                  SS5      ;   a;  [        U R                  U R                  U R
                  S9nU" XU5      I S h  vN   g U R                  XU5      I S h  vN   g  N  N7f)Ntypehttp)r   gzipAccept-Encoding )r   )r   getGZipResponderr   r   r   )r   r   r   r   headers	responders         r   __call__GZipMiddleware.__call__   s}     =F"E*G%6;;)$((D4E4EUYUgUgh	555hhut,,, 6,s$   AB B!B;B<BB)r   r   r   )i  r   )__name__
__module____qualname____firstlineno__r   intr   r   r   r	   r&   __static_attributes__ r   r   r   r   	   sE    +G +3 +S +Y] +
-E -G -4 -D -r   r   c            	       ^    \ rS rSrSS\S\S\SS4S jjrS\S	\S
\	SS4S jr
S\SS4S jrSrg)r#      r   r   r   r   Nc                     Xl         X l        [        U l        0 U l        SU l        SU l        [        R                  " 5       U l	        [        R                  " SU R                  US9U l        g )NFwb)modefileobjr   )r   r   unattached_sendr   initial_messagestartedcontent_encoding_setioBytesIOgzip_bufferr   GzipFile	gzip_filer   s       r   r   GZipResponder.__init__   sT    ()	(*$)!::<D$:J:JZghr   r   r   r   c                    #    X0l         U R                     U R                     U R                  XU R                  5      I S h  vN   S S S 5        S S S 5        g  N! , (       d  f       N= f! , (       d  f       g = f7fr   )r   r;   r=   r   send_with_gzip)r   r   r   r   s       r   r&   GZipResponder.__call__$   sO     	t~~((54+>+>???  .?  .~sE   A<A+ AAAA+	A<A
A(	$A++
A95A<messagec                   #    US   nUS:X  a'  Xl         [        U R                   S   S9nSU;   U l        g US:X  af  U R                  (       aU  U R                  (       d*  SU l        U R	                  U R                   5      I S h  vN   U R	                  U5      I S h  vN   g US:X  GaM  U R                  (       Gd;  SU l        UR                  SS	5      nUR                  S
S5      n[        U5      U R                  :  aD  U(       d=  U R	                  U R                   5      I S h  vN   U R	                  U5      I S h  vN   g U(       d  U R                  R                  U5        U R                  R                  5         U R                  R                  5       n[        U R                   S   S9nSUS'   [        [        U5      5      US'   UR                  S5        XAS'   U R	                  U R                   5      I S h  vN   U R	                  U5      I S h  vN   g [        U R                   S   S9nSUS'   UR                  S5        US	 U R                  R                  U5        U R                  R                  5       US'   U R                  R!                  S5        U R                  R#                  5         U R	                  U R                   5      I S h  vN   U R	                  U5      I S h  vN   g US:X  a  UR                  SS	5      nUR                  S
S5      nU R                  R                  U5        U(       d  U R                  R                  5         U R                  R                  5       US'   U R                  R!                  S5        U R                  R#                  5         U R	                  U5      I S h  vN   g g  GNF GN0 GN GN GN GN GN N N7f)Nr   zhttp.response.startr$   )rawzcontent-encodingzhttp.response.bodyTbodyr   	more_bodyFr   zContent-EncodingzContent-Lengthr    r   )r6   r   r8   r7   r   r"   lenr   r=   writecloser;   getvaluer   stradd_vary_headerseektruncate)r   rB   message_typer$   rE   rF   s         r   r@   GZipResponder.send_with_gzip)   s)    v00 $+ $"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   B O!OO!OBO!#O$O!<O=C O!=O>O!OB?O!OO!/O0CO!OO!O!O!O!O!O!O!O!O!)r   r8   r;   r=   r6   r   r   r7   )r   )r(   r)   r*   r+   r   r,   r   r   r   r	   r&   r   r@   r-   r.   r   r   r#   r#      sb    iG i3 is iSW i@E @G @4 @D @
?%G ?% ?%r   r#   rB   r   c                     #    [        S5      e7f)Nzsend awaitable not set)RuntimeError)rB   s    r   r5   r5   k   s     
/
00s   )r   r9   typingstarlette.datastructuresr   r   starlette.typesr   r   r   r   r	   r   r#   NoReturnr5   r.   r   r   <module>rW      sE     	  < B B- - O% O%d17 1v 1r   