
    i                         S SK r S SKrS SKJr  S SKJrJr  S SKJrJ	r	J
r
JrJr  Sr " S S5      r " S S	5      r " S
 S\5      rS\	S\4S jrg)    N)NoReturn)HeadersMutableHeaders)ASGIAppMessageReceiveScopeSend)ztext/event-streamc            	       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       a/var/www/html/qgis-automation/mouza_env/lib/python3.13/site-packages/starlette/middleware/gzip.py__init__GZipMiddleware.__init__   s    (*    scopereceivesendc                 P  #    US   S:w  a  U R                  XU5      I S h  vN   g [        US9nSUR                  SS5      ;   a*  [        U R                   U R                  U R
                  S9nO [        U R                   U R                  5      nU" XU5      I S h  vN   g  N N7f)Ntypehttp)r   gzipAccept-Encoding )r   )r   r   getGZipResponderr   r   IdentityResponder)r   r   r   r   headers	responders         r   __call__GZipMiddleware.__call__   s     =F"((54000&W[[!2B77%dhh0A0AQUQcQcdI)$((D4E4EFI--- 1 	.s"   B&B"A:B&B$B&$B&)r   r   r   )i  	   )__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                   x    \ rS rSr% \\S'   S\S\SS4S jrS\	S	\
S
\SS4S jrS\SS4S jrS\S\S\4S jrSrg)r$       content_encodingr   r   r   Nc                 j    Xl         X l        [        U l        0 U l        SU l        SU l        SU l        g )NF)r   r   unattached_sendr   initial_messagestartedcontent_encoding_setcontent_type_is_excluded)r   r   r   s      r   r   IdentityResponder.__init__#   s3    ()	(*$)!(-%r   r   r   r   c                 d   #    X0l         U R                  XU R                  5      I S h  vN   g  N7fr   )r   r   send_with_compression)r   r   r   r   s       r   r'   IdentityResponder.__call__,   s$     	hhut'A'ABBBs   &0.0messagec                   #    US   nUS:X  aQ  Xl         [        U R                   S   S9nSU;   U l        UR                  SS5      R	                  [
        5      U l        g US:X  aw  U R                  (       d  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a  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                  USS9n[        U R                   S   S9nUR                  S5        XAS
   :w  a*  U R                  US'   [        [        U5      5      US'   XAS
'   U R                  U R                   5      I S h  vN   U R                  U5      I S h  vN   g U R                  US	S9n[        U R                   S   S9nUR                  S5        XAS
   :w  a  U R                  US'   US	 XAS
'   U R                  U R                   5      I S h  vN   U R                  U5      I S h  vN   g US:X  aP  UR                  S
S5      nUR                  SS5      nU R                  XES9US
'   U R                  U5      I S h  vN   g US:X  a=  U R                  U R                   5      I S h  vN   U R                  U5      I S h  vN   g g  GN GN GN GN GNW GNA N N N_ N7 N 7f)Nr   zhttp.response.startr%   )rawzcontent-encodingzcontent-typer!   zhttp.response.bodyTbodyr   	more_bodyF)rB   r    zContent-EncodingzContent-Lengthzhttp.response.pathsend)r6   r   r8   r"   
startswithDEFAULT_EXCLUDED_CONTENT_TYPESr9   r7   r   lenr   apply_compressionr   add_vary_headerr3   str)r   r>   message_typer%   rA   rB   s         r   r<   'IdentityResponder.send_with_compression0   s    v00 $+ $"6"6y"ABG(:g(ED%,3KK,K,V,VWu,vD)11t7P7PTXTqTq<<#ii 4 4555))G$$$11$,,,DL;;vs+DK7I4y4,,,Yii 4 4555ii(((--de-D(T-A-A)-LM''(9:6?*262G2GG./03CIG,-&*FOii 4 4555ii((( --dd-C(T-A-A)-LM''(9:6?*262G2GG./ 01&*FOii 4 4555ii(((11;;vs+DK7I"44T4OGFO))G$$$55))D00111))G$$$ 6Y 6$ 6( 6( 6( % 2$s   B;M2=M>M2MBM2MM27M8BM2M"M2$M%%A8M2M(M26M*7AM2M,)M26M.7M2M0M2M2M2M2"M2%M2(M2*M2,M2.M20M2rA   rB   c                    U$ )zApply compression on the response body.

If more_body is False, any compression file should be closed. If it
isn't, it won't be closed automatically until all background tasks
complete.
r0   r   rA   rB   s      r   rF   #IdentityResponder.apply_compressionm   s	     r   )r   r8   r9   r6   r   r   r7   )r*   r+   r,   r-   rH   __annotations__r   r.   r   r	   r   r
   r'   r   r<   bytesboolrF   r/   r0   r   r   r$   r$       sv    .G .3 .4 .CE CG C4 CD C;%7 ;%t ;%ze 4 E r   r$   c            	       z   ^  \ rS rSrSrSS\S\S\SS4U 4S jjjrS	\S
\	S\
SS4U 4S jjrS\S\S\4S jrSrU =r$ )r#   w   r   r   r   r   r   Nc                    > [         TU ]  X5        [        R                  " 5       U l        [
        R                  " SU R                  US9U l        g )Nwb)modefileobjr   )superr   ioBytesIOgzip_bufferr   GzipFile	gzip_file)r   r   r   r   	__class__s       r   r   GZipResponder.__init__z   s9    +::<D$:J:JZghr   r   r   r   c                    >#    U R                      U R                     [        TU ]  XU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   )rZ   r\   rW   r'   )r   r   r   r   r]   s       r   r'   GZipResponder.__call__   sF     t~~'"54888  .8  .~sA   A+AA	AA	A	A+A		
A	A
A($A+rA   rB   c                   U R                   R                  U5        U(       d  U R                   R                  5         U R                  R	                  5       nU R                  R                  S5        U R                  R                  5         U$ )Nr   )r\   writecloserZ   getvalueseektruncaterL   s      r   rF   GZipResponder.apply_compression   sf    T"NN  "((*a !!#r   )rZ   r\   )r)   )r*   r+   r,   r-   r3   r   r.   r   r	   r   r
   r'   rO   rP   rF   r/   __classcell__)r]   s   @r   r#   r#   w   sv    iG i3 is iSW i i9E 9G 94 9D 9	e 	4 	E 	 	r   r#   r>   r   c                     #    [        S5      e7f)Nzsend awaitable not set)RuntimeError)r>   s    r   r5   r5      s     
/
00s   )r   rX   typingr   starlette.datastructuresr   r   starlette.typesr   r   r   r	   r
   rD   r   r$   r#   r5   r0   r   r   <module>rn      sT     	  < B B!7 . .*T Tn% 217 1x 1r   