
     jr                    V   S SK Jr  S SK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\5      r " S S\
5      rg)    )annotationsN   )RequestResponse)AsyncByteStream   )AsyncBaseTransportASGITransportc                     [         R                  " 5       S:X  a  SS Kn U R                  " 5       $ SS KnUR                  " 5       $ )Ntrior   )sniffiocurrent_async_libraryr   Eventasyncio)r   r   s     `/home/ubuntu/second-brain/public-api/venv/lib/python3.13/site-packages/httpx/_transports/asgi.pycreate_eventr      s1    $$&&0zz|}}    c                  (    \ rS rSrSS jrSS jrSrg)ASGIResponseStream*   c                    Xl         g N_body)selfbodys     r   __init__ASGIResponseStream.__init__+   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   *   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
   2   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   r.   r/   r0   r1   s        r   r   ASGITransport.__init__J   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serverr1   r0   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)Nr7   zhttp.disconnectTzhttp.requestr   F)r7   r   	more_body)wait	__anext__StopAsyncIteration)r   request_body_chunksrequest_completeresponse_completes    r   receive3ASGITransport.handle_async_request.<locals>.receivey   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)Nr7   zhttp.response.startstatusr;   Tzhttp.response.bodyr   r   rB   FHEAD)getis_setr:   appendset)	messager   rB   
body_partsrequestrH   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])rR   z&typing.MutableMapping[str, typing.Any]r#   r$   )
isinstancerZ   r   r:   r;   rawlowerurlr<   r=   r>   splitqueryhostportr1   r0   r!   r   r.   	Exceptionr/   rQ   rO   r   r   )r   rT   kvscoperI   rX   rZ   rS   rF   rG   rH   rU   rV   rW   s    `      @@@@@@@r   handle_async_request"ASGITransport.handle_async_requestV   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;)r.   r1   r/   r0   N)T )z	127.0.0.1{   )
r.   _ASGIAppr/   boolr0   strr1   ztuple[str, int]r#   r$   )rT   r   r#   r   )r%   r&   r'   r(   __doc__r   rg   r)   r*   r   r   r
   r
   2   sd    4 &*"4

 #
 	

  
 

XNXN 
XNr   )r#   r   )
__future__r   typingr   _modelsr   r   _typesr   baser	   TYPE_CHECKINGr   r   Unionr   MutableMappingrm   Any_MessageCallable	Awaitable_Receive_Sendrk   __all__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   