ó
    ´Õi](  ã                  óN  • S SK Jr  S SKJrJrJrJrJrJr  S SK	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   -  S4   r\\\-  \-  \\\
4   -     r \" S	5      r! " S
 S\5      r" " S S5      r# " S S\5      r$g)é    )Úannotations)ÚAsyncGeneratorÚAsyncIterableÚ	AwaitableÚCallableÚMappingÚMutableMapping)ÚAnyÚTypeVarN)Ú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      €ÚV/home/mande/repo/quber/.venv/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‰{Ð/Ó/ô #Ð%BÀ3ÀvÁ;À-Ð#PÓQÐQØ-1ˆDÔ*ØˆJô �4˜ $Ó'Ñ3à)-ˆDÔ&à&ØŸ
™
Ø"ñð ð
 ×"×"ð *.ˆDÔ&à&ØØ"ñð ð3ØŸ™›�Ø$×.Ñ.Ó0×0�Ø-1×-BÑ-B�Ô*à*Ø!Ø%)×%:Ñ%:Ô!:ñð ñC 'ñ> 1øô $ó 3Ø15�Ô.ØÐ 1Ð2Ò2ð3üsI   ‚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   r5   Ú__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    rE   rF   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rD   )Ú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)rP   zCallable[[], Awaitable[T]]r8   r   )Úis_setÚanyioÚcreate_task_groupÚ
start_soonÚwait)rS   ÚmessagerR   Úresponse_sentr5   s     @€€r$   Úreceive_or_disconnectÚMBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnectq   sž   ùé € Ø ×'Ñ'×)Ñ)Ø"Ð$5Ð6Ð6ä ×2Ò2×4Ô4¸
÷&ð
 ×)Ñ)¨$°×0BÑ0BÔCÙ$(¨Ó$9×9�G÷ 5×4ð !×'Ñ'×)Ñ)Ø"Ð$5Ð6Ð6à�ñ 5ñ :÷ 5×4×4Ð4üsV   „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rD   )ÚsendrV   ÚBrokenResourceError)rZ   Úsend_streams    €r$   Úsend_no_errorÚEBaseHTTPMiddleware.__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rD   )rE   Ú	Exception)ÚexcÚapp_excr\   r!   r    rb   ra   s    €€€€€€r$   ÚcoroÚ<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro‹   sM   øé € ò !ð&Ø"Ÿh™h uÐ.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)rZ   r,   Úrecv_streams     €r$   Úbody_streamÚCBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.body_stream­   sz   øé € Ù%0÷ 	˜'Ø˜v‘Ð*BÓBØ%›ÙØ" 6™?Ð.BÓBÐdÐFZÐ[bÐZcÐDdÓdÐBØ"Ÿ;™; v¨sÓ3�DÞØ"›
Ø"Ÿ;™; {°E×:Ó:Ùñ	¡[ùs,   ƒA/†A-ŠA+‹A-ŽAA/Á)A/Á+A-Á-A/Ústatus)Ústatus_codeÚcontentrj   Úheadersr7   )rZ   r   r8   ÚNone)r8   rw   )r8   ÚBodyStreamGenerator)
rX   r"   ro   rV   ÚEndOfStreamÚ	__cause__Ú__context__r/   Ú_StreamingResponseÚraw_headers)Úrequestrh   rZ   rj   rq   Úresponser\   rb   rg   Úexception_already_raisedrp   r[   r!   r    ra   rR   r5   s         @@€€€€€€€€€r$   Ú	call_nextÚ.BaseHTTPMiddleware.__call__.<locals>.call_nextp   s  úé € ÷ð ÷&÷&ô &ð ×!Ñ! $Ô'ð<Ø +× 3Ñ 3Ó 5×5�Ø—{‘{ 6¨4Ó0�Ø˜6‘?Ð&;Ó;ÀÑ@PØ$/×$7Ñ$7Ó$9×9�Gð" ˜6‘?Ð&;Ó;Ð;Ð;÷
ô *°g¸hÑ6GÑQ\ÓQ^ÐeiÑjˆHØ#*¨9Ñ#5ˆHÔ ØˆOñI 6ñ :øÜ×$Ñ$ó <ØÑ&à/3Ð,ð " w×'8Ñ'8×'O¸G×<OÑ<OÐOÜ"Ð#:Ó;Ð;ð<üsA   …0D¶B: Á	B6Á
5B: Á?B8Â B: Â2DÂ6B: Â8B: Â:AC?Ã?D)r~   r   r8   r   )rE   r   r5   rV   ÚEventÚcreate_memory_object_streamr   rW   rG   ÚsetÚclose)r    r!   r"   r_   r~   r�   Ústreamsr   rg   r€   rp   r[   ra   rR   r5   s   ``      @@@@@@@r$   Ú__call__ÚBaseHTTPMiddleware.__call__e   s5  ÿøé € Ø�‰=˜FÓ"Ø—(‘(˜5 'Ó0×0Ð0Øä  ¨Ó0ˆØ!×1Ñ1ˆÜŸš›ˆØ$(ˆØ#(Ð ÷K	÷ K	ôZ ?D×>_Ò>_Ó>aˆØ#*Ñ ˆ�[Úš+Ô'9Õ';Ü×.Ò.×0Ô0°JØ!%×!3Ñ!3°GÓ!G×G�Ù˜u o°tÓ<×<Ð<Ø×!Ñ!Ô#Ø×!Ñ!Ô#÷	 1×0÷ (<Ÿ+�[ð ÑÖ'?ØˆMð (@Ðò} 1ñr 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rD   )ÚNotImplementedError)r    r~   r�   s      r$   rF   ÚBaseHTTPMiddleware.dispatchÈ   s   é € Ü!Ó#Ð#ùs   ‚)rE   rG   rD   )rE   r   rF   zDispatchFunction | Noner8   rw   ©r!   r   r"   r   r_   r   r8   rw   )r~   r   r�   ÚRequestResponseEndpointr8   r   )r9   r:   r;   r<   r   rˆ   rF   r>   © r&   r$   rA   rA   `   s   † öMôa÷F$r&   rA   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 rD   )rj   Úbody_iteratorrt   Ú
media_typeÚinit_headersÚ
background)r    ru   rt   rv   r”   rj   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)
Nrk   )r(   rj   rl   )r(   rs   rv   TFrn   r+   r&   )rj   rt   r}   r“   Ú
isinstanceÚdictr–   )r    r!   r"   r_   Úshould_close_bodyr4   s         r$   rˆ   Ú_StreamingResponse.__call__Ü   sü   é € Ø�9‰9Ñ ÙÐ 5¸t¿y¹yÑIÓJ×JÐJÙà-Ø×*Ñ*Ø×+Ñ+ñó
÷ 	
ð 	
ð !ÐØ×-Ò-÷ 	Y�%Ü˜%¤×&Ñ&à$)Ð!Ù˜5“k×!Ð!ÙÙÐ 4¸eÐRVÑWÓX×XÒXñ! Kñ	
ñ	Yñ "áXð .ö ÙÐ 4¸cÐPUÑ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“   rj   r”   rt   )éÈ   NNN)ru   ÚAsyncContentStreamrt   Úintrv   zMapping[str, str] | Noner”   z
str | Nonerj   zMapping[str, Any] | Noner8   rw   r�   )r9   r:   r;   r<   r   rˆ   r>   r�   r&   r$   r|   r|   Ì   sT   † ð Ø,0Ø!%Ø)-ðà#ðð ðð *ð	ð
 ðð 'ðð 
õ÷$r&   r|   )%Ú
__future__r   Úcollections.abcr   r   r   r   r   r	   Útypingr
   r   rV   Ústarlette._utilsr   Ústarlette.requestsr   r   Ústarlette.responsesr   Ústarlette.typesr   r   r   r   r   rŽ   ÚDispatchFunctionÚbytesÚstrrx   Ú
memoryviewrž   r   r   rA   r|   r�   r&   r$   Ú<module>r«      sÇ   ðÝ "ç g× gß ã å /ß 8Ý (ß BÕ Bà" G 9¨i¸Ñ.AÐ#AÑBÐ Ø˜WÐ&=Ð>À	È(Ñ@SÐSÑTÐ Ø$ U¨^¸CÀ¸HÑ-EÑ%EÀtÐ%KÑLÐ Ø" 3¨¡;°Ñ#;¸nÈSÐRUÈXÑ>VÑ#VÑWÐ ÙˆCƒL€ôI3�Wô I3÷Xi$ñ i$ôX($˜õ ($r&   