
    in(                    R   S SK Jr  S SKJrJrJrJrJr  S SKJ	r	J
r
JrJr  S SKrS SKJr  S SKJrJr  S SKJr  S SKJrJrJrJrJr  \
\/\\   4   r\
\\/\\   4   r\\\\\\	4   4   S4   r\\\\\ \\\	4   4      r!\" S	5      r" " S
 S\5      r# " S S5      r$ " S S\5      r%g)    )annotations)AsyncGeneratorAsyncIterable	AwaitableMappingMutableMapping)AnyCallableTypeVarUnionN)collapse_excgroups)ClientDisconnectRequest)Response)ASGIAppMessageReceiveScopeSendTc                  :   ^  \ rS rSrSrSU 4S jjrSS jrSrU =r$ )_CachedRequest   a  
If the user calls Request.body() from their dispatch function
we cache the entire request body in memory and pass that to downstream middlewares,
but if they call Request.stream() then all we do is send an
empty body so that downstream things don't hang forever.
c                j   > [         TU ]  X5        SU l        SU l        U R	                  5       U l        g )NF)super__init___wrapped_rcv_disconnected_wrapped_rcv_consumedstream_wrapped_rc_stream)selfscopereceive	__class__s      a/var/www/html/qgis-automation/mouza_env/lib/python3.13/site-packages/starlette/middleware/base.pyr   _CachedRequest.__init__   s.    ().&%*""&++-    c                f  #    U R                   (       a  SS0$ U R                  (       aW  U R                  (       a  SU l         SS0$ U R                  5       I S h  vN nUS   S:w  a  [	        SUS    35      eSU l         U$ [        U SS 5      b  SU l        SU R                  SS.$ U R                  (       a  SU l        SS	SS.$  U R                  5       nUR                  5       I S h  vN nU R                  U l        SUU R                  (       + S.$  N N,! [         a    SU l         SS0s $ f = f7f)
Ntypehttp.disconnectTzUnexpected message received: _bodyzhttp.requestFr)   body	more_bodyr'   )r   r   _is_disconnectedr#   RuntimeErrorgetattrr+   _stream_consumedr   	__anext__r   )r!   msgr   chunks       r%   wrapped_receive_CachedRequest.wrapped_receive"   s[    )) -..%% $$ 26. 122 &C6{// #%B3v;-#PQQ-1D*J 4$'3)-D&&

" 
 "" *.D&&" 3$..00-1-B-B**!%)%:%:!: C '> 1 $ 315. 1223sI   AD1DA*D1#D 'D()D D1D D.+D1-D..D1)r    r   r   )r"   r   r#   r   returnr   )	__name__
__module____qualname____firstlineno____doc__r   r6   __static_attributes____classcell__)r$   s   @r%   r   r      s    0;3 ;3r'   r   c                  6    \ rS rSrSSS jjrS	S jrS
S jrSrg)BaseHTTPMiddleware`   Nc                H    Xl         Uc  U R                  U l        g UU l        g N)appdispatchdispatch_func)r!   rF   rG   s      r%   r   BaseHTTPMiddleware.__init__a   s    .6.>T]]Hr'   c           
     *  ^ ^^^	^
^^^^#    TS   S:w  a  T R                  TX#5      I S h  vN   g [        TU5      nUR                  m[        R                  " 5       mS mSm	SUU	U
UUU UUU4	S jjn[        R
                  " 5       nUu  mm
T
   T   [        5          [        R                  " 5        IS h  vN mT R                  XE5      I S h  vN nU" TTU5      I S h  vN   TR                  5         T
R                  5         S S S 5      IS h  vN   S S S 5        S S S 5        S S S 5        Tb
  T	(       d  Teg g  GN N Nq Na N3! , IS h  vN  (       d  f       NH= f! , (       d  f       NQ= f! , (       d  f       NZ= f! , (       d  f       Nc= f7f)Nr)   httpFc                  >	^^#    SUU4S jjmSU4S jjmSUUUUUU4S jjnTR                  U5         T
R                  5       I S h  vN nUR                  SS 5      nUS   S:X  a  Ub  T
R                  5       I S h  vN nUS   S	:X  d   eSU
4S
 jjn[        US   U" 5       US9nUS   Ul	        U$  Nl N8! [        R                   a1    Tb"  Sm	TTR
                  =(       d    TR                  e[        S5      ef = f7f)Nc                 z  >^#    TR                  5       (       a  SS0$ [        R                  " 5        IS h  vN mSU4S jjn TR                  U TR                  5        U " T5      I S h  vN nS S S 5      IS h  vN   TR                  5       (       a  SS0$ W$  Nc N1 N#! , IS h  vN  (       d  f       N8= f7f)Nr)   r*   c                f   >#    U " 5       I S h  vN nTR                   R                  5         U$  N 7frE   )cancel_scopecancel)funcresult
task_groups     r%   wrap[BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect.<locals>.wrapw   s+     '+v"//668% ".s   1/!1)rQ   zCallable[[], Awaitable[T]]r9   r   )is_setanyiocreate_task_group
start_soonwait)rT   messagerS   response_sentr6   s     @r%   receive_or_disconnectMBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnectq   s      ''))"$566 2244
&
 ))$0B0BC$($99G 54 !''))"$566 5 : 5444sV   3B;BB;0B!+B,B!0B;;B< B;B!B;!B8'B*(B84B;c                z   >#     TR                  U 5      I S h  vN   g  N! [        R                   a     g f = f7frE   )sendrW   BrokenResourceError)r[   send_streams    r%   send_no_errorEBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error   s6     %**733300 s(   ;! ! ;! 8;8;c                    >#    T    TR                  TTT5      I S h  vN   S S S 5        g  N! [         a  n U m S n A NS n A ff = f! , (       d  f       g = f7frE   )rF   	Exception)excapp_excr]   r"   r!   rc   rb   s    r%   coro<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro   sM      !&"hhu.C]SSS ![S$ &"%& ![sD   AA.,.	A.
A?AAA
AAinfor)   http.response.debugTzNo response returned.http.response.startc                   >#    T  S h  vN n U S   S:X  a  U 7v     g U S   S:X  d
   SU  35       eU R                  SS5      nU(       a  U7v   U R                  SS5      (       a  Mc    g  N`
 g 7f)	Nr)   zhttp.response.pathsendhttp.response.bodyzUnexpected message: r-   r'   r.   F)get)r[   r-   recv_streams     r%   body_streamCBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.body_stream   sz     %0 	'v*BB%"6?.BBdFZ[bZcDddB";;vs3D"
";;{E::	[s,   A/A-A+A-AA/)A/+A--A/status)status_codecontentrk   headersr8   )r[   r   r9   None)r9   rx   )r9   BodyStreamGenerator)
rY   r#   rp   rW   EndOfStream	__cause____context__r0   _StreamingResponseraw_headers)requestri   r[   rk   rr   responser]   rc   rh   exception_already_raisedrq   r\   r"   r!   rb   rS   r6   s         @@r%   	call_next.BaseHTTPMiddleware.__call__.<locals>.call_nextp   s     && & !!$'< + 3 3 55{{6406?&;;@P$/$7$7$99G" 6?&;;;;
 *gh6GQ\Q^eijH#*9#5H OI 6 :$$ <&/3, "w'8'8'OG<O<OO"#:;;<sA   0DB: 	B6
5B: ?B8 B: 2D6B: 8B: :AC??D)r   r   r9   r   )rF   r   r6   rW   Eventcreate_memory_object_streamr   rX   rH   setclose)r!   r"   r#   r`   r   r   streamsr   rh   r   rq   r\   rb   rS   r6   s   ``      @@@@@@@r%   __call__BaseHTTPMiddleware.__call__e   s5    =F"((5'000 0!11$(#( K	 K	Z ?D>_>_>a#* [+'9';..00J!%!3!3G!GGuot<<<!!#!!#	 10 (<+[ '?M (@} 1r 1G< 1000 (<';++[[s   FD;A"FFE1E 5D>6E 9E	E E	 E!$E	E E
E E1F%F>E  E	E	E EEEE  
E.*E11
E?	;F
FFc                   #    [        5       e7frE   )NotImplementedError)r!   r   r   s      r%   rG   BaseHTTPMiddleware.dispatch   s     !##s   )rF   rH   rE   )rF   r   rG   zDispatchFunction | Noner9   rx   r"   r   r#   r   r`   r   r9   rx   )r   r   r   RequestResponseEndpointr9   r   )r:   r;   r<   r=   r   r   rG   r?    r'   r%   rB   rB   `   s    MaF$r'   rB   c                  J    \ rS rSr    S           SS jjrSS jrSrg)	r}      Nc                d    XPl         Xl        X l        X@l        U R	                  U5        S U l        g rE   )rk   body_iteratorru   
media_typeinit_headers
background)r!   rv   ru   rw   r   rk   s         r%   r   _StreamingResponse.__init__   s/     	$&$'"r'   c                   #    U R                   b  U" SU R                   S.5      I S h  vN   U" SU R                  U R                  S.5      I S h  vN   SnU R                    S h  vN n[	        U[
        5      (       a  SnU" U5      I S h  vN   M2  U" SUSS.5      I S h  vN   MH   N N\ NG N" N
 U(       a  U" SS	SS.5      I S h  vN    U R                  (       a  U R                  5       I S h  vN    g g 7f)
Nrl   )r)   rk   rm   )r)   rt   rw   TFro   r,   r'   )rk   ru   r~   r   
isinstancedictr   )r!   r"   r#   r`   should_close_bodyr5   s         r%   r   _StreamingResponse.__call__   s     99  5tyyIJJJ-**++
 	
 	
 !-- 	Y%%&&$)!5k!! 4eRVWXXX! K	
	Y "X .  4cPUVWWW??//### s   &C>B+'C>B-C>#B5'B/(B5+#C>B1C>$B3%C>-C>/B51C>3C>5C>C)C>6C97C>)r   r   rk   r   ru   )   NNN)rv   AsyncContentStreamru   intrw   zMapping[str, str] | Noner   z
str | Nonerk   zMapping[str, Any] | Noner9   rx   r   )r:   r;   r<   r=   r   r   r?   r   r'   r%   r}   r}      sT     ,0!%)-#  *	
  ' 
$r'   r}   )&
__future__r   collections.abcr   r   r   r   r   typingr	   r
   r   r   rW   starlette._utilsr   starlette.requestsr   r   starlette.responsesr   starlette.typesr   r   r   r   r   r   DispatchFunctionbytesstrry   
memoryviewr   r   r   rB   r}   r   r'   r%   <module>r      s    " ] ] 0 0  / 8 ( B B"G9i.A#AB W&=>	(@SST $U5.c2J+J%KT%QR "5eZPSUXPXAY)Y#Z[ CLI3W I3Xi$ i$X($ ($r'   