ó
    §ZÇh}  ã                  óX  • S SK Jr  S SKrSSKJrJr  SSKJr  SSKJ	r	  \R                  (       a-  S SKrS SKr\R                  \R                  \R                  4   r\R                  \\R"                  4   r\R&                  / \R(                  \   4   r\R&                  \R                  \\R"                  4   /\R(                  S   4   r\R&                  \R                  \\R"                  4   \\/\R(                  S   4   rS/rSS	 jrSS
 jr " S S\5      r " S S\	5      rg)é    )ÚannotationsNé   )ÚRequestÚResponse)ÚAsyncByteStreamé   )ÚAsyncBaseTransportÚASGITransportc                 óZ   •  SS K n U R                  5       S:X  a  g g! [         a     gf = f)Nr   ÚtrioTF)ÚsniffioÚcurrent_async_libraryÚImportError)r   s    ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/httpx/_transports/asgi.pyÚis_running_trior      sA   € ð	ó 	à×(Ñ(Ó*¨fÓ4Øð 5ð
 øô ó Øàðús   ‚ �
*©*c                 ót   • [        5       (       a  SS Kn U R                  " 5       $ SS KnUR                  " 5       $ )Nr   )r   r   ÚEventÚasyncio)r   r   s     r   Úcreate_eventr   ,   s)   € Ü×ÑÛà�zŠz‹|Ðãà�=Š=‹?Ðó    c                  ó(   • \ rS rSrSS jrSS jrSrg)ÚASGIResponseStreamé7   c                ó   • Xl         g ©N©Ú_body)ÚselfÚbodys     r   Ú__init__ÚASGIResponseStream.__init__8   s   € Ø�
r   c               óH   #   • SR                  U R                  5      7v •  g 7f)Nr   )Újoinr   )r   s    r   Ú	__aiter__ÚASGIResponseStream.__aiter__;   s   é € Ø�h‰h�t—z‘zÓ"Ô"ùs   ‚ "r   N)r   zlist[bytes]ÚreturnÚNone)r&   ztyping.AsyncIterator[bytes])Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r    r$   Ú__static_attributes__© r   r   r   r   7   s   † ô÷#r   r   c                  óP   • \ rS rSrSr   S         SS jjr    S	S jrSrg)
r
   é?   a›  
A custom AsyncTransport that handles sending requests directly to an ASGI app.

```python
transport = httpx.ASGITransport(
    app=app,
    root_path="/submount",
    client=("1.2.3.4", 123)
)
client = httpx.AsyncClient(transport=transport)
```

Arguments:

* `app` - The ASGI application.
* `raise_app_exceptions` - Boolean indicating if exceptions in the application
   should be raised. Default to `True`. Can be set to `False` for use cases
   such as testing the content of a client 500 response.
* `root_path` - The root path on which the ASGI application should be mounted.
* `client` - A two-tuple indicating the client IP and port of incoming requests.
```
c                ó4   • Xl         X l        X0l        X@l        g r   )ÚappÚraise_app_exceptionsÚ	root_pathÚclient)r   r1   r2   r3   r4   s        r   r    ÚASGITransport.__init__W   s   € ð ŒØ$8Ô!Ø"ŒØ�r   c              ƒ  óú  ^^^	^
^^^^#   • [        TR                  [        5      (       d   eSSS0STR                  TR                  R
                   VVs/ s H  u  p#UR                  5       U4PM     snnTR                  R                  TR                  R                  TR                  R                  R                  S5      S   TR                  R                  TR                  R                  TR                  R                  4U R                  U R                   S.nTR                  R#                  5       m	Sm
S mS m/ mSm[%        5       mSU	U
U4S	 jjnSUUUUUU4S
 jjn U R'                  XEU5      I S h  v•N   TR/                  5       (       d   eTc   eTc   e[1        T5      n[3        TTUS9$ s  snnf  NA! [(         a/    U R*                  (       a  e TR-                  5         Tc  SmTc  0 m Nwf = f7f)NÚhttpÚversionz3.0z1.1ó   ?r   )ÚtypeÚasgiÚhttp_versionÚmethodÚheadersÚschemeÚpathÚraw_pathÚquery_stringÚserverr4   r3   Fc               “  óÈ   >#   • T(       a  TR                  5       I S h  v•N   SS0$  TR                  5       I S h  v•N n SU SS.$  N' N! [         a    SmSSSS.s $ f = f7f)Nr:   zhttp.disconnectTzhttp.requestr   F)r:   r   Ú	more_body)ÚwaitÚ	__anext__ÚStopAsyncIteration)r   Úrequest_body_chunksÚrequest_completeÚresponse_completes    €€€r   ÚreceiveÚ3ASGITransport.handle_async_request.<locals>.receive†   s|   øé € ö  Ø'×,Ñ,Ó.×.Ð.ØÐ 1Ð2Ð2ðQØ0×:Ñ:Ó<×<�ð +°DÀtÑLÐLñ /ñ =øÜ%ó QØ#'Ð Ø .¸È%ÑPÒPðQüsB   ƒA"žAŸA"¨A
 »A¼A
 Á A"ÁA
 Á
AÁA"ÁAÁA"c              “  óp  >#   • U S   S:X  a#  T(       a   eU S   mU R                  S/ 5      mSmg U S   S:X  a|  TR                  5       (       a   eU R                  SS5      nU R                  S	S
5      nU(       a!  TR                  S:w  a  TR                  U5        U(       d  TR	                  5         g g g 7f)Nr:   zhttp.response.startÚstatusr>   Tzhttp.response.bodyr   r   rE   FÚHEAD)ÚgetÚis_setr=   ÚappendÚset)	Úmessager   rE   Ú
body_partsÚrequestrK   Úresponse_headersÚresponse_startedÚstatus_codes	      €€€€€€r   ÚsendÚ0ASGITransport.handle_async_request.<locals>.send”   s¶   øé € ð �v‰Ð"7Ó7Þ+Ð+Ð+à% hÑ/�Ø#*§;¡;¨y¸"Ó#=Ð Ø#'Ñ à˜‘Ð$8Ó8Ø,×3Ñ3×5Ñ5Ð5Ð5Ø—{‘{ 6¨3Ó/�Ø#ŸK™K¨°UÓ;�	æ˜GŸN™N¨fÓ4Ø×%Ñ% dÔ+æ Ø%×)Ñ)Õ+ð !ð 9ùs   ƒB3B6iô  )r>   Ústream)r&   zdict[str, typing.Any])rU   z&typing.MutableMapping[str, typing.Any]r&   r'   )Ú
isinstancer]   r   r=   r>   ÚrawÚlowerÚurlr?   r@   rA   ÚsplitÚqueryÚhostÚportr4   r3   r$   r   r1   Ú	Exceptionr2   rT   rR   r   r   )r   rW   ÚkÚvÚscoperL   r[   r]   rV   rI   rJ   rK   rX   rY   rZ   s    `      @@@@@@@r   Úhandle_async_requestÚ"ASGITransport.handle_async_requestc   sÓ  ÿé € ô ˜'Ÿ.™.¬/×:Ñ:Ð:Ð:ð Ø Ð&Ø!Ø—n‘nØ5<·_±_×5HÒ5HÔIÒ5H©6¨A˜Ÿ™› A›Ñ5HÒIØ—k‘k×(Ñ(Ø—K‘K×$Ñ$ØŸ™×,Ñ,×2Ñ2°4Ó8¸Ñ;Ø#ŸK™K×-Ñ-Ø—{‘{×'Ñ'¨¯©×)9Ñ)9Ð:Ø—k‘kØŸ™ñ
ˆð  &Ÿn™n×6Ñ6Ó8ÐØ Ðð ˆØÐØˆ
Ø ÐÜ(›NÐ÷	Mñ 	M÷	,ô 	,ð*
	&Ø—(‘(˜5¨4Ó0×0Ð0ð !×'Ñ'×)Ñ)Ð)Ð)ØÑ&Ð&Ð&ØÑ+Ð+Ð+ä# JÓ/ˆä˜Ð-=ÀfÑMÐMùóY Jñv 1øÜó 	&Ø×(×(Øà×!Ñ!Ô#ØÑ"Ø!�ØÑ'Ø#%Ð ùð	&üsI   ŠAG;ÁF7Á3C2G;Å&F? Å;F=Å<F? Æ =G;Æ=F? Æ?6G8Ç5G;Ç7G8Ç8G;)r1   r4   r2   r3   N)TÚ )z	127.0.0.1é{   )
r1   Ú_ASGIAppr2   Úboolr3   Ústrr4   ztuple[str, int]r&   r'   )rW   r   r&   r   )r(   r)   r*   r+   Ú__doc__r    rj   r,   r-   r   r   r
   r
   ?   sd   † ñð4 &*ØØ"4ð
àð
ð #ð
ð ð	
ð
  ð
ð 
õ
ðXNàðXNð 
÷XNr   )r&   ro   )r&   r   )Ú
__future__r   ÚtypingÚ_modelsr   r   Ú_typesr   Úbaser	   ÚTYPE_CHECKINGr   r   ÚUnionr   ÚMutableMappingrp   ÚAnyÚ_MessageÚCallableÚ	AwaitableÚ_ReceiveÚ_Sendrn   Ú__all__r   r   r   r
   r-   r   r   Ú<module>r�      s  ðÝ "ã ç 'Ý $Ý $à	××Ûãà�L‰L˜Ÿ™¨¯
©
Ð2Ñ3€Eð × Ñ   f§j¡j Ñ1€Ø�?‰?˜2˜v×/Ñ/°Ñ9Ð9Ñ:€Ø�‰Ø×Ñ˜3 §
¡
˜?Ñ+Ð,¨f×.>Ñ.>¸tÑ.DÐDñ	€ð �?‰?Ø×Ñ˜3 §
¡
˜?Ñ+¨X°uÐ=¸v×?OÑ?OÐPTÑ?UÐUñ€ð Ð
€ôôô#˜ô #ô|NÐ&õ |Nr   