
    \AhA                         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r " S S5      r " S S5      r " S	 S
\5      rS\S\R                   4S jrg)    N)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       `C:\Users\julio\Documents\inmobiliaria_backend\env\Lib\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                 X  #    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 g  GNV GN@ GN GN GN N N No N7f)Nr   zhttp.response.startr$   )rawzcontent-encodingzcontent-typer    zhttp.response.bodyTbodyr   	more_bodyF)rA   r   zContent-EncodingzContent-Length)r5   r   r7   r!   
startswithDEFAULT_EXCLUDED_CONTENT_TYPESr8   r6   r   lenr   apply_compressionr   add_vary_headerr2   str)r   r=   message_typer$   r@   rA   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$$$ 2I 6$ 6( 6( 6( %s   B;L*=L>L*LBL*LL*7L8BL*LL*$L"%A8L*L$L*6L&7AL*L(L*L*L*L*L*"L*$L*&L*(L*r@   rA   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.
r/   r   r@   rA   s      r   rE   #IdentityResponder.apply_compressioni   s	     r   )r   r7   r8   r5   r   r   r6   )r)   r*   r+   r,   rG   __annotations__r   r-   r   r   r   r	   r&   r   r;   bytesboolrE   r.   r/   r   r   r#   r#       sv    .G .3 .4 .CE CG C4 CD C7%7 7%t 7%r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"   s   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__v   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   )rY   r[   rV   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+r@   rA   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closerY   getvalueseektruncaterK   s      r   rE   GZipResponder.apply_compression   sf    T"NN  "((*a !!#r   )rY   r[   )r(   )r)   r*   r+   r,   r2   r   r-   r   r   r   r	   r&   rN   rO   rE   r.   __classcell__)r\   s   @r   r"   r"   s   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   r4   r4      s     
/
00s   )r   rW   typingstarlette.datastructuresr   r   starlette.typesr   r   r   r   r	   rC   r   r#   r"   NoReturnr4   r/   r   r   <module>rn      sX     	  < B B!7 . .*P Pf% 217 1v 1r   