
    ~lDhSm                    R   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlmZmZ d dlZd dlZd dlZd dlmZ d dlmZ d dlmZmZmZmZmZ d d	lmZ ej         d
k    rd dlm!Z! nd dl"m!Z! 	 d dl#Z#n# e$$ r  e%d          w xY wej&        g ej'        ej(        j)                 f         Z*ej&        eegej+        d         f         Z,ej&        ege,f         Z-ej&        eeegej+        d         f         Z.ej/        e0ej1        e0ej2        e0         e3f         f         Z4d dZ5 G d d          Z6 G d dej7                  Z8 G d de9          Z: G d de#j;        e          Z< G d d          Z= G d de#j>                  Z? G d de#j@                  ZAdS )!    )annotationsN)Future)GeneratorType)unquoteurljoin)StapledObjectStream)is_async_callable)ASGIAppMessageReceiveScopeSend)WebSocketDisconnect)   
   )	TypeGuardzThe starlette.testclient module requires the httpx package to be installed.
You can install this with:
    $ pip install httpx
appASGI2App | ASGI3AppreturnTypeGuard[ASGI3App]c                h    t          j        |           rt          | d          S t          |           S )N	__await__)inspectisclasshasattrr	   r   s    U/users/jtampere/www/backend/venv/lib/python3.11/site-packages/starlette/testclient.py	_is_asgi3r   /   s2    s )sK(((S!!!    c                  "    e Zd ZdZddZddZdS )
_WrapASGI2z7
    Provide an ASGI3 interface onto an ASGI2 app.
    r   ASGI2Appr   Nonec                    || _         d S Nr   )selfr   s     r   __init__z_WrapASGI2.__init__:   s    r   scoper   receiver   sendr   c                X   K   |                      |          } |||           d {V  d S r%   r   )r&   r(   r)   r*   instances        r   __call__z_WrapASGI2.__call__=   s?      88E??hw%%%%%%%%%%%r   N)r   r"   r   r#   )r(   r   r)   r   r*   r   r   r#   )__name__
__module____qualname____doc__r'   r-    r   r   r!   r!   5   sF            & & & & & &r   r!   c                  $    e Zd ZU ded<   ded<   dS )_AsyncBackendstrbackenddict[str, typing.Any]backend_optionsN)r.   r/   r0   __annotations__r2   r   r   r4   r4   B   s'         LLL******r   r4   c                      e Zd ZddZdS )_UpgradesessionWebSocketTestSessionr   r#   c                    || _         d S r%   )r<   )r&   r<   s     r   r'   z_Upgrade.__init__H   s    r   N)r<   r=   r   r#   )r.   r/   r0   r'   r2   r   r   r;   r;   G   s(             r   r;   c                      e Zd ZdZdS )WebSocketDenialResponsez
    A special case of `WebSocketDisconnect`, raised in the `TestClient` if the
    `WebSocket` is closed before being accepted with a `send_denial_response()`.
    N)r.   r/   r0   r1   r2   r   r   r@   r@   L   s           r   r@   c                      e Zd Zd*d	Zd+d
Zd,dZd-dZd.dZd.dZd/dZ	d0dZ
d1d2dZd3d4d%Zd5d&Zd6d'Zd7d(Zd1d8d)Zd S )9r=   r   ASGI3Appr(   r   portal_factory_PortalFactoryTyper   r#   c                L    || _         || _        d | _        || _        d | _        d S r%   )r   r(   accepted_subprotocolrC   extra_headers)r&   r   r(   rC   s       r   r'   zWebSocketTestSession.__init__W   s0     
$(!,!r   c                   t          j                    5 }|                    |                                           x| _        }|                    | j                  \  }}|                    |j                   |                    |j	        |j
                   |                     ddi           |                                 }|                     |           |                    dd           | _        |                    dd           | _        |                    | j        d           |                                | _        | cd d d            S # 1 swxY w Y   d S )Ntypezwebsocket.connectsubprotocolheaders  )
contextlib	ExitStackenter_contextrC   portal
start_task_runcallbackresultcallcancelr*   r)   _raise_on_closegetrF   rG   closepop_all
exit_stack)r&   stackrP   futcsmessages         r   	__enter__zWebSocketTestSession.__enter__c   sj   !## 	u#(#6#6t7J7J7L7L#M#MMDK&''	22GCNN3:&&&NN6;	222IIv23444llnnG  )))(/M4(H(HD%!(Y!=!=DNN4:t,,,#mmooDO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   D1EEEargs
typing.Anybool | Nonec                      | j         j        | S r%   )r[   __exit__r&   ra   s     r   re   zWebSocketTestSession.__exit__r   s    't'..r   task_status'anyio.abc.TaskStatus[anyio.CancelScope]c          
       K   t          j        t          j                  }|\  }}t          j        t          j                  }|\  }}|5  |5  |5  |5  t          j                    5 }|| _        || _        |                    |           |                     | j	        |j
        |j                   d{V  t          j                     d{V  ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )zE
        The sub-thread in which the websocket session runs.
        N)anyiocreate_memory_object_streammathinfCancelScope_receive_tx_send_rxstartedr   r(   r)   r*   sleep_forever)	r&   rg   r*   send_txsend_rxr)   
receive_tx
receive_rxr^   s	            r   rR   zWebSocketTestSession._runu   s      <A;\]a]e;f;f>C>_`d`h>i>i!(
J 	( 	(g 	( 	(z 	( 	(: 	( 	(u7H7J7J 	(b)D#DM###((4:z'97<HHHHHHHHH %'''''''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   D:D"DC4	(A)CC4	C!!C4	$C!%C4	(D4C88D;C8<D?D"DD"DD"D:"D&	&D:)D&	*D::D>D>r_   r   c                   |d         dk    r9t          |                    dd          |                    dd                    |d         dk    r|d	         }|d
         }g }	 |                                 }|d         dk    sJ |                    |d                    |                    dd          snUt	          ||d                    |                    d S )NrI   zwebsocket.closecoderL   reason )rx   ry   zwebsocket.http.response.startstatusrK   Tzwebsocket.http.response.bodybody	more_bodyFr   )status_coderK   content)r   rX   r)   appendr@   join)r&   r_   r~   rK   r|   s        r   rW   z$WebSocketTestSession._raise_on_close   s    6?///%7;;vt+D+DW[[YaceMfMfggggV_ ???&x0K181CG "D,,..v*HHHHHGFO,,,{{;66  *k7\_\d\dei\j\jkkkk @?r   c                P    | j                             | j        j        |           d S r%   )rP   rU   ro   r*   r&   r_   s     r   r*   zWebSocketTestSession.send   s&    ).88888r   datar5   c                6    |                      d|d           d S )Nwebsocket.receiverI   textr*   r&   r   s     r   	send_textzWebSocketTestSession.send_text   s#    		.==>>>>>r   bytesc                6    |                      d|d           d S )Nr   rI   r   r   r   s     r   
send_byteszWebSocketTestSession.send_bytes   s#    		.>>?????r   r   mode typing.Literal['text', 'binary']c                    t          j        |dd          }|dk    r|                     d|d           d S |                     d|                    d          d           d S )	N),:F)
separatorsensure_asciir   r   r   utf-8r   )jsondumpsr*   encode)r&   r   r   r   s       r   	send_jsonzWebSocketTestSession.send_json   so    z$:EJJJ6>>II2DAABBBBBII2T[[=Q=QRRSSSSSr   rL   Nrx   intry   
str | Nonec                8    |                      d||d           d S )Nzwebsocket.disconnect)rI   rx   ry   r   )r&   rx   ry   s      r   rY   zWebSocketTestSession.close   s%    		146RRSSSSSr   c                J    | j                             | j        j                  S r%   )rP   rU   rp   r)   r&   s    r   r)   zWebSocketTestSession.receive   s    { 5666r   c                    |                                  }|                     |           t          j        t          |d                   S )Nr   )r)   rW   typingcastr5   r   s     r   receive_textz!WebSocketTestSession.receive_text   s9    ,,..W%%%{3000r   c                    |                                  }|                     |           t          j        t          |d                   S )Nr   )r)   rW   r   r   r   r   s     r   receive_bytesz"WebSocketTestSession.receive_bytes   s:    ,,..W%%%{5''"2333r   c                    |                                  }|                     |           |dk    r	|d         }n|d                             d          }t          j        |          S )Nr   r   r   )r)   rW   decoder   loads)r&   r   r_   r   s       r   receive_jsonz!WebSocketTestSession.receive_json   s_    ,,..W%%%6>>6?DD7#**733Dz$r   )r   rB   r(   r   rC   rD   r   r#   )r   r=   )ra   rb   r   rc   )rg   rh   r   r#   r_   r   r   r#   )r   r5   r   r#   )r   r   r   r#   )r   )r   rb   r   r   r   r#   )rL   N)rx   r   ry   r   r   r#   r   r   )r   r5   )r   r   )r   r   r   rb   )r.   r/   r0   r'   r`   re   rR   rW   r*   r   r   r   rY   r)   r   r   r   r2   r   r   r=   r=   V   sM       
" 
" 
" 
"   / / / /( ( ( ("l l l l9 9 9 9? ? ? ?@ @ @ @T T T T TT T T T T7 7 7 71 1 1 1
4 4 4 4
             r   r=   c                  $    e Zd Z	 	 dddZddZdS )_TestClientTransportTrz   r   rB   rC   rD   raise_server_exceptionsbool	root_pathr5   clienttuple[str, int]	app_stater7   r   r#   c               Z    || _         || _        || _        || _        || _        || _        d S r%   )r   r   r   rC   r   r   )r&   r   rC   r   r   r   r   s          r   r'   z_TestClientTransport.__init__   s4     '>$","r   requesthttpx.Requesthttpx.Responsec                @   j         j        }j         j                            d          }j         j        }j         j        }j         j                            d          }ddddd|         }d|v r)|                    dd          \  }}	t          |	          }
n|}|}
dj	        v rg }n:|
|k    rd	|
                                fg}nd	| d|
 
                                fg}|d
 j	                                        D             z  }|dv r։j	                            dd           }|g }nd |                    d          D             }dt          |          |                    dd          d         | j        ||
                                || j        ||
g|| j                                        di id}t%          | j        || j                  }t+          |          ddj        t          |          |                    dd          d         | j        ||
                                || j        ||
gdi i| j                                        d}dddt/          j                    id d d$fd}d%fd}	 |                                 5 }|                    t4          j                  |                    | j        |||           d d d            n# 1 swxY w Y   n # t8          $ r}| j        r|Y d }~nd }~ww xY w| j        rs
J d             nsd!g t/          j                    d"t=          j        d                                                    d<   t=          j!        d&i d#i}|_"        |_#        |S )'Nascii)encodingP   i  )httpwshttpswssr      hosts   hostc                    g | ]?\  }}|                                                                 |                                f@S r2   )lowerr   .0keyvalues      r   
<listcomp>z7_TestClientTransport.handle_request.<locals>.<listcomp>   s=    kkkzsESYY[[''))5<<>>:kkkr   >   r   r   sec-websocket-protocolc                6    g | ]}|                                 S r2   )strip)r   r   s     r   r   z7_TestClientTransport.handle_request.<locals>.<listcomp>   s     RRR%RRRr   r   	websocket   ?r   zwebsocket.http.response)rI   pathraw_pathr   schemequery_stringrK   r   serversubprotocolsstate
extensionsr   z1.1http.response.debug)rI   http_versionmethodr   r   r   r   r   rK   r   r   r   r   Fstreamr   r   c                   K   r2                                 s                                 d {V  ddiS                                 } t          | t                    r|                     d          }ny| d}ntt          | t                    r]	 |                     d           }t          |t                    r|                    d          }d|ddS # t          $ r
 ddddcY S w xY w| }dd|dS )	NrI   zhttp.disconnectr   r   zhttp.requestT)rI   r|   r}   )rI   r|   )	is_setwaitread
isinstancer5   r   r   r*   StopIteration)r|   
body_byteschunkr   request_completeresponse_completes      r   r)   z4_TestClientTransport.handle_request.<locals>.receive  sB        3(//11 3+00222222222 122<<>>D$$$ "$(KK$8$8

 

D-00 
"A IIdOOE!%-- 6 %W 5 5$2EPTUUU$ A A A'+$$2C@@@@@A "
#*J???s   AC C+*C+r_   r#   c                n  K   | d         dk    r>r
J d            | d         d<   d |                      dg           D             d<   dd S | d         d	k    rs
J d
                                            r
J d            |                      dd          }|                      dd          }j        dk    rd                             |           |s1d                             d                                            d S d S | d         dk    r| d         d         | d         d         d S d S )NrI   zhttp.response.startz1Received multiple "http.response.start" messages.r{   r~   c                d    g | ]-\  }}|                                 |                                 f.S r2   )r   r   s      r   r   zE_TestClientTransport.handle_request.<locals>.send.<locals>.<listcomp>>  s2    (u(u(uJCQV#**,,)G(u(u(ur   rK   Tzhttp.response.bodyz<Received "http.response.body" without "http.response.start".z7Received "http.response.body" after response completed.r|   r   r}   FHEADr   r   r   infotemplatecontext)rX   r   r   writeseekset)	r_   r|   r}   r   
raw_kwargsr   r   response_startedr   s	      r   r*   z1_TestClientTransport.handle_request.<locals>.send8  s      v"777+``-````,3H,=
=)(u(uZaZeZefoqsZtZt(u(u(u
9%#'   $888'gg)gggg,3355pp7pppp{{63//#KKU;;	>V++x(..t444  ,x(--a000%))+++++, , $999"6?:6!&/)4 :9r   z(TestClient did not receive any response.i  )r~   rK   r   r   r   r   r2   )$urlr   netlocr   r   r   querysplitr   rK   r   multi_itemsrX   r   r   r   r   copyr=   r   rC   r;   r   ioBytesIOrU   rj   EventBaseExceptionr   httpx
ByteStreamr   Responser   r   )r&   r   r   r   r   r   r   default_portr   port_stringportrK   rJ   r   r(   r<   r)   r*   rP   excresponser   r   r   r   r   r   s    `                   @@@@@@r   handle_requestz#_TestClientTransport.handle_request   s   ##**G*<<{;'!(('(:: ""s3GGO&== &S! 4 4D+{##DDDD W_$$13GG\!!/0GGT"2"2D"2"2!:!:!<!<=>G 	kkW_MhMhMjMjkkkk ]""!/--.FMMK"57RR;;L;LS;Q;QRRR#$NN433A6!^  %"+, ,,,..8"= E +48UD<OPPG7### !nDMM tQ//2!LLNNkTl0"5^((**
 
  ! -5rz||,D
	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@8	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5,	$$&& <&$*KK$<$<!DHeWd;;;< < < < < < < < < < < < < < <  	 	 	+ 	    	 ' 	#OO%OOOOO! 	"*,, J  %/
80D0I0I0K0KLL
8>@@J@@@@@ (H&Hs<   K= (=K1%K= 1K55K= 8K59K= =
L	LLN)Trz   )r   rB   rC   rD   r   r   r   r5   r   r   r   r7   r   r#   )r   r   r   r   )r.   r/   r0   r'   r  r2   r   r   r   r      sO        
 )-    "T T T T T Tr   r   c                      e Zd ZU dZded<   dZded<   	 	 	 	 	 	 	 	 	 dMdN fd Zej        dOd"            Z	ddddddde
j        j        e
j        j        e
j        j        dd#dP fd9Zddde
j        j        e
j        j        e
j        j        dd:dQ fd;Zddde
j        j        e
j        j        e
j        j        dd:dQ fd<Zddde
j        j        e
j        j        e
j        j        dd:dQ fd=Zddddddde
j        j        e
j        j        e
j        j        dd#dR fd>Zddddddde
j        j        e
j        j        e
j        j        dd#dR fd?Zddddddde
j        j        e
j        j        e
j        j        dd#dR fd@Zddde
j        j        e
j        j        e
j        j        dd:dQ fdAZ	 dSdT fdFZdUdGZdVdIZdWdJZdWdKZdWdLZ xZS )X
TestClientFzFuture[None]taskNzanyio.abc.BlockingPortal | NonerP   http://testserverTrz   asyncio
testclientiP  r   r
   base_urlr5   r   r   r   r6   !typing.Literal['asyncio', 'trio']r8   dict[str, typing.Any] | Nonecookieshttpx._types.CookieTypes | NonerK   dict[str, str] | Nonefollow_redirectsr   r   r   r#   c                   t          ||pi           | _        t          |          r|}n)t          j        t
          |          }t          |          }|| _        i | _        t          | j        | j
        ||| j        |
          }|i }|                    dd           t                                          ||||	|           d S )N)r6   r8   )rC   r   r   r   r   z
user-agentr	  )r
  rK   	transportr  r  )r4   async_backendr   r   r   r"   r!   r   r   r   _portal_factory
setdefaultsuperr'   )r&   r   r
  r   r   r6   r8   r  rK   r  r   asgi_appr  	__class__s                r   r'   zTestClient.__init__m  s     +7OLa_abbbS>> 	'HH+h,,C!#H02(H/$;n
 
 
	 ?G<666- 	 	
 	
 	
 	
 	
r   6typing.Generator[anyio.abc.BlockingPortal, None, None]c              #     K   | j         | j         V  d S t          j        j        di | j        5 }|V  d d d            d S # 1 swxY w Y   d S )Nr2   )rP   rj   from_threadstart_blocking_portalr  )r&   rP   s     r   r  zTestClient._portal_factory  s      ;"+"8NN4;MNN RX                 s   AA	Ar   r   filesr   paramsrK   r  authr  timeoutr   r   r   httpx._types.URLTypesr   "httpx._types.RequestContent | Noner   _RequestData | Noner   httpx._types.RequestFiles | Noner   rb   r  #httpx._types.QueryParamTypes | Nonehttpx._types.HeaderTypes | Noner   7httpx._types.AuthTypes | httpx._client.UseClientDefault%bool | httpx._client.UseClientDefaultr!  :httpx._types.TimeoutTypes | httpx._client.UseClientDefaultr   r   c                   |t           j        urt          j        dt                     |                     |          }t                                          |||||||||	|
|||          S )NzYou should not use the 'timeout' argument with the TestClient. See https://github.com/encode/starlette/issues/1108 for more information.r  )r   USE_CLIENT_DEFAULTwarningswarnDeprecationWarning
_merge_urlr  r   )r&   r   r   r   r   r  r   r  rK   r  r   r  r!  r   r  s                 r   r   zTestClient.request  s    " %222M\"  
 ooc""ww-!  
 
 	
r   r  rK   r  r   r  r!  r   c          
     V    t                                          ||||||||          S Nr1  )r  rX   
r&   r   r  rK   r  r   r  r!  r   r  s
            r   rX   zTestClient.get  s<     ww{{-!  	
 	
 		
r   c          
     V    t                                          ||||||||          S r3  )r  optionsr4  s
            r   r6  zTestClient.options  s<     ww-!  	
 	
 		
r   c          
     V    t                                          ||||||||          S r3  )r  headr4  s
            r   r8  zTestClient.head  s<     ww||-!  	
 	
 		
r   c               ^    t                                          |||||||||	|
||          S Nr  )r  postr&   r   r   r   r  r   r  rK   r  r   r  r!  r   r  s                r   r;  zTestClient.post
  sH      ww||-!  
 
 	
r   c               ^    t                                          |||||||||	|
||          S r:  )r  putr<  s                r   r>  zTestClient.put)  sH      ww{{-!  
 
 	
r   c               ^    t                                          |||||||||	|
||          S r:  )r  patchr<  s                r   r@  zTestClient.patchH  sH      ww}}-!  
 
 	
r   c          
     V    t                                          ||||||||          S r3  )r  deleter4  s
            r   rB  zTestClient.deleteg  s<     ww~~-!  	
 	
 		
r   r   typing.Sequence[str] | Nonekwargsr=   c                   t          d|          }|                    di           }|                    dd           |                    dd           |                    dd           |)|                    d	d
                    |                     ||d<   	  t	                      j        d|fi | t          d          # t          $ r}|j        }Y d }~nd }~ww xY w|S )Nzws://testserverrK   
connectionupgradezsec-websocket-keyztestserver==zsec-websocket-version13r   z, GETzExpected WebSocket upgrade)	r   rX   r  r   r  r   RuntimeErrorr;   r<   )r&   r   r   rD  rK   r   r<   r  s          r   websocket_connectzTestClient.websocket_connect~  s    '--**Y++<333.???2D999#7<9P9PQQQ#y	=EGGOE311&111 ;<<<  	" 	" 	"kGGGGGG	"
 s   C 
C CC c                    t          j                    5 }|                    t          j        j        di  j                  x _        |j        d fd            }t          j	        t          j                  }t          j	        t          j                  }g ||R D ]}|                    |j                   t          |  _        t          |  _                             j                   _                             j                   |j        d fd            }|                                 _        d d d            n# 1 swxY w Y    S )Nr   r#   c                     d  _         d S r%   )rP   r   s   r   reset_portalz*TestClient.__enter__.<locals>.reset_portal  s    "r   c                 <                          j                   d S r%   )rU   wait_shutdown)rP   r&   s   r   rP  z+TestClient.__enter__.<locals>.wait_shutdown  s    D./////r   r2   r   r#   )rM   rN   rO   rj   r  r  r  rP   rS   rk   rl   rm   rY   r   stream_sendstream_receivestart_task_soonlifespanr  rU   wait_startuprZ   r[   )r&   r\   rN  r*   r)   channelrP  rP   s   `      @r   r`   zTestClient.__enter__  s   !## 	.u#(#6#6u7H7^7t7taeas7t7t#u#uuDK&^# # # # # ^# 1$(;;  1$(;;  -T,G,, . .w}----2D9D"5w"?D..t}==DIKK)***^0 0 0 0 0 0 ^0 $mmooDO1	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.4 s   D+EEEra   c                8    | j                                          d S r%   )r[   rY   rf   s     r   re   zTestClient.__exit__  s    r   c                  K   d| j         d}	 |                     || j        j        | j        j                   d {V  | j                            d            d {V  d S # | j                            d            d {V  w xY w)NrU  )rI   r   )r   r   rS  r)   rR  r*   )r&   r(   s     r   rU  zTestClient.lifespan  s      #dn==	.((5$"5"=t?O?TUUUUUUUUU"''-----------$"''----------s   1A! !"Bc                    K    j                             ddi           d {V  d fd} |             d {V }|d         dv sJ |d         dk    r |             d {V  d S d S )	NrI   zlifespan.startupr   rb   c                    K   j                                          d {V } | j                                         | S r%   rR  r)   r  rT   r_   r&   s    r   r)   z(TestClient.wait_startup.<locals>.receive  K       ,4466666666G	  """Nr   )zlifespan.startup.completelifespan.startup.failedr_  r   rb   rS  r*   r&   r)   r_   s   `  r   rV  zTestClient.wait_startup  s      !&&0B'CDDDDDDDDD	 	 	 	 	 	  		//////v #
 
 
 
 
 6?777'))OOOOOOOOO 87r   c                    K   d fd} j                             ddi           d {V   |             d {V }|d         dv sJ |d         dk    r |             d {V  d S d S )	Nr   rb   c                    K   j                                          d {V } | j                                         | S r%   r\  r]  s    r   r)   z)TestClient.wait_shutdown.<locals>.receive  r^  r   rI   zlifespan.shutdown)zlifespan.shutdown.completelifespan.shutdown.failedre  r`  ra  rb  s   `  r   rP  zTestClient.wait_shutdown  s      	 	 	 	 	 	 !&&0C'DEEEEEEEEE		//////v #
 
 
 
 
 6?888'))OOOOOOOOO 98r   )	r  Trz   r  NNNTr  )r   r
   r
  r5   r   r   r   r5   r6   r  r8   r  r  r  rK   r  r  r   r   r   r   r#   )r   r  )r   r5   r   r"  r   r#  r   r$  r  r%  r   rb   r  r&  rK   r'  r  r  r   r(  r  r)  r!  r*  r   r  r   r   )r   r"  r  r&  rK   r'  r  r  r   r(  r  r)  r!  r*  r   r  r   r   )r   r"  r   r#  r   r$  r  r%  r   rb   r  r&  rK   r'  r  r  r   r(  r  r)  r!  r*  r   r  r   r   r%   )r   r5   r   rC  rD  rb   r   r=   )r   r  )ra   rb   r   r#   rQ  )r.   r/   r0   __test__r9   rP   r'   rM   contextmanagerr  r   _clientr,  r   rX   r6  r8  r;  r>  r@  rB  rK  r`   re   rU  rV  rP  __classcell__)r  s   @r   r  r  h  s        H.2F2222
 ,(,5>8<37)-!%"7&
 &
 &
 &
 &
 &
 &
P     7;$(266:3737HMHhBG-BbNSmNn37&
 &
 &
 &
 &
 &
 &
 &
X 7;3737HMHhBG-BbNSmNn37
 
 
 
 
 
 
 
6 7;3737HMHhBG-BbNSmNn37
 
 
 
 
 
 
 
6 7;3737HMHhBG-BbNSmNn37
 
 
 
 
 
 
 
6 7;$(266:3737HMHhBG-BbNSmNn37
 
 
 
 
 
 
 
F 7;$(266:3737HMHhBG-BbNSmNn37
 
 
 
 
 
 
 
F 7;$(266:3737HMHhBG-BbNSmNn37
 
 
 
 
 
 
 
F 7;3737HMHhBG-BbNSmNn37
 
 
 
 
 
 
 
4 59      .   :       . . . .   "       r   r  )r   r   r   r   )B
__future__r   rM   r   r   r   rl   sysr   r-  concurrent.futuresr   typesr   urllib.parser   r   rj   	anyio.abcanyio.from_threadanyio.streams.stapledr   starlette._utilsr	   starlette.typesr
   r   r   r   r   starlette.websocketsr   version_infor   typing_extensionsr   ModuleNotFoundErrorrJ  CallableContextManagerabcBlockingPortalrD   	AwaitableASGIInstancer"   rB   Mappingr5   UnionIterabler   _RequestDatar   r!   	TypedDictr4   	Exceptionr;   r   r@   r=   BaseTransportr   Clientr  r2   r   r   <module>r     s   " " " " " "      				   



   % % % % % %       ) ) ) ) ) ) ) )          5 5 5 5 5 5 . . . . . . B B B B B B B B B B B B B B 4 4 4 4 4 4w       ++++++LLLL   
,	$   _R)>uy?W)X%XY 0@0FFG?E7L01?E7D163CD3IIJ ~c6<V_S5I50P#QQR" " " "
& 
& 
& 
& 
& 
& 
& 
&+ + + + +F$ + + +
    y   
    	N  f  f  f  f  f  f  f  f Rf f f f f5. f f fRs s s s s s s s s ss    B B