
    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    H/var/www/html/env/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)    zz|==?    c                  (    \ rS rSrSS jrSS jrSrg)ASGIResponseStream7   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     hhtzz""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   receive3ASGITransport.handle_async_request.<locals>.receive   s|       ',,... 122Q0::<< +Dt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   send0ASGITransport.handle_async_request.<locals>.send   s      v"77+++%h/#*;;y"#= #' $88,335555{{63/#KKU;	GNNf4%%d+ %))+ ! 9s   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     '../:::: &!nn5<__5H5HI5H6AA5HIkk((KK$$,,2248;#KK--{{'')9)9:kk
  &nn668  
 (N	M 	M	, 	,*
	&((54000 !''))))&&&+++#J/-=fMMY 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   "  ' $ $	LL

23E   fjj1??2v//99:3

?+,f.>.>t.DD	 ??3

?+Xu=v?O?OPT?UU 
# #|N& |Nr   