
    h                       S SK Jr  S SKrS SKrS SKrS SK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  SSKJrJrJr  SSKJrJrJrJrJrJr  SS	KJr  SS
KJrJrJrJr  SSK J!r!J"r"J#r#J$r$  SSK%J&r&  SSK'J(r(J)r)  SSK*J+r+J,r,  SSK-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:  SSK;J<r<J=r=  SSK>J?r?J@r@  \R                  (       a  S SKBrB/ SQrC\R                  " SSS9rE\R                  " SSS9rFS,S jrGS-S jrHS.S jrI " S S5      rJ\J" 5       rK\R                  " S5      rMS\ 3rNSR                  \R                  " 5        V s/ s H  o S :w  d  M
  U PM     sn 5      rQ " S! S"\R                  5      rS " S# S$\95      rT " S% S&\.5      rU\R                  S'\R                  4   rX " S( S)5      rY " S* S\Y5      rZ " S+ S\Y5      r[gs  sn f )/    )annotationsN)asynccontextmanagercontextmanager)TracebackType   )__version__)Auth	BasicAuthFunctionAuth)DEFAULT_LIMITSDEFAULT_MAX_REDIRECTSDEFAULT_TIMEOUT_CONFIGLimitsProxyTimeout)SUPPORTED_DECODERS)
InvalidURLRemoteProtocolErrorTooManyRedirectsrequest_context)CookiesHeadersRequestResponse)codes)AsyncBaseTransportBaseTransport)AsyncHTTPTransportHTTPTransport)AsyncByteStream	AuthTypes	CertTypesCookieTypesHeaderTypes
ProxyTypesQueryParamTypesRequestContentRequestDataRequestExtensionsRequestFilesSyncByteStreamTimeoutTypes)URLQueryParams)
URLPatternget_environment_proxies)USE_CLIENT_DEFAULTAsyncClientClientTr3   )boundUr2   c                    U R                   UR                   :w  a  gU R                  S:H  =(       a9    [        U 5      S:H  =(       a$    UR                  S:H  =(       a    [        U5      S:H  $ )z9
Return 'True' if 'location' is a HTTPS upgrade of 'url'
FhttpP   https  )hostscheme_port_or_default)urllocations     ?/var/www/html/env/lib/python3.13/site-packages/httpx/_client.py_is_https_redirectrB   >   sa     xx8==  	

f 	.S!R'	.OOw&	. X&#-	    c                p    U R                   b  U R                   $ SSS.R                  U R                  5      $ )Nr9   r;   )r8   r:   )portgetr=   r?   s    rA   r>   r>   M   s/    
xxxx%))#**55rC   c                    U R                   UR                   :H  =(       a7    U R                  UR                  :H  =(       a    [        U 5      [        U5      :H  $ )z8
Return 'True' if the given URLs share the same origin.
)r=   r<   r>   )r?   others     rA   _same_originrJ   S   sF    
 	

ell" 	=HH

"	=S!%5e%<<rC   c                      \ rS rSrSrSrg)UseClientDefault^   a  
For some parameters such as `auth=...` and `timeout=...` we need to be able
to indicate the default "unset" state, in a way that is distinctly different
to using `None`.

The default "unset" state indicates that whatever default is set on the
client should be used. This is different to setting `None`, which
explicitly disables the parameter, possibly overriding a client default.

For example we use `timeout=USE_CLIENT_DEFAULT` in the `request()` signature.
Omitting the `timeout` parameter will send a request using whatever default
timeout has been configured on the client. Including `timeout=None` will
ensure no timeout is used.

Note that user code shouldn't need to use the `USE_CLIENT_DEFAULT` constant,
but it is used internally when a parameter is not included.
 N)__name__
__module____qualname____firstlineno____doc____static_attributes__rN   rC   rA   rL   rL   ^   s    rC   rL   httpxzpython-httpx/z, identityc                       \ rS rSrSrSrSrSrg)ClientState}   r         rN   N)rO   rP   rQ   rR   UNOPENEDOPENEDCLOSEDrT   rN   rC   rA   rX   rX   }   s     H F FrC   rX   c                  F    \ rS rSrSr        SS jrS	S jrS
S jrSrg)BoundSyncStream   z
A byte stream that is bound to a given response instance, and that
ensures the `response.elapsed` is set once the response is closed.
c                (    Xl         X l        X0l        g N_stream	_response_startselfstreamresponsestarts       rA   __init__BoundSyncStream.__init__        !rC   c              #  :   #    U R                    H  nUv   M	     g 7frc   re   ri   chunks     rA   __iter__BoundSyncStream.__iter__   s     \\EK "s   c                    [         R                  " 5       U R                  -
  n[        R                  " US9U R
                  l        U R                  R                  5         g N)seconds)	timeperf_counterrg   datetime	timedeltarf   elapsedre   closeri   r}   s     rA   r~   BoundSyncStream.close   s@    ##%3!)!3!3G!DrC   rf   rg   re   N)rj   r+   rk   r   rl   floatreturnNone)r   ztyping.Iterator[bytes]r   r   )	rO   rP   rQ   rR   rS   rm   rt   r~   rT   rN   rC   rA   r`   r`      s6    
$08AF	rC   r`   c                  F    \ rS rSrSr        SS jrS	S jrS
S jrSrg)BoundAsyncStream   z
An async byte stream that is bound to a given response instance, and that
ensures the `response.elapsed` is set once the response is closed.
c                (    Xl         X l        X0l        g rc   rd   rh   s       rA   rm   BoundAsyncStream.__init__   ro   rC   c               J   #    U R                     S h  vN nU7v   M   N
 g 7frc   rq   rr   s     rA   	__aiter__BoundAsyncStream.__aiter__   s     << 	%K	<s   #!!#!#c                   #    [         R                  " 5       U R                  -
  n[        R                  " US9U R
                  l        U R                  R                  5       I S h  vN   g  N7frw   )	ry   rz   rg   r{   r|   rf   r}   re   acloser   s     rA   r   BoundAsyncStream.aclose   sI     ##%3!)!3!3G!Dll!!###s   A#A-%A+&A-r   N)rj   r    rk   r   rl   r   r   r   )r   ztyping.AsyncIterator[bytes]r   )	rO   rP   rQ   rR   rS   rm   r   r   rT   rN   rC   rA   r   r      s6    
%19BG	$rC   r   .c                  L   \ rS rSrSSSS\S\SSSSS.                       S*S jjr\S+S	 j5       r\S+S
 j5       r	S,S jr
      S-S jr\S.S j5       r\R                  S/S j5       r\S0S j5       r\R                  S1S j5       r\S2S j5       r\R                  S3S j5       r\S4S j5       r\R                  S5S j5       r\S6S j5       r\R                  S7S j5       r\S8S j5       r\R                  S9S j5       r\S:S j5       r\R                  S;S j5       rSSSSSSS\SS.	                       S<S jjrS=S jrS>S?S jjrS>S@S jjr S>   SAS  jjrSBS! jr\4     SCS" jjrSDS# jrSES$ jrSFS% jrSGS& jr      SHS' jr SIS( jr!S)r"g)J
BaseClient   NF Tutf-8authparamsheaderscookiestimeoutfollow_redirectsmax_redirectsevent_hooksbase_url	trust_envdefault_encodingc                  Uc  0 OUnU R                  [        U	5      5      U l        U R                  U5      U l        [        U5      U l        [        U5      U l        [        U5      U l
        [        U5      U l        X`l        Xpl        [        UR!                  S/ 5      5      [        UR!                  S/ 5      5      S.U l        Xl        Xl        [(        R*                  U l        g Nrequestrk   )r   rk   )_enforce_trailing_slashr-   	_base_url_build_auth_authr.   _paramsr   r   r   _cookiesr   _timeoutr   r   listrF   _event_hooks
_trust_env_default_encodingrX   r\   _state)ri   r   r   r   r   r   r   r   r   r   r   r   s               rA   rm   BaseClient.__init__   s     (/b[55c(mD%%d+
"6*w'(( 0*KOOIr:;[__Z<=
 $!1!**rC   c                <    U R                   [        R                  :H  $ )z"
Check if the client being closed
)r   rX   r^   ri   s    rA   	is_closedBaseClient.is_closed   s    
 {{k0000rC   c                    U R                   $ rc   )r   r   s    rA   r   BaseClient.trust_env   s    rC   c                ~    UR                   R                  S5      (       a  U$ UR                  UR                   S-   S9$ )N   /raw_path)r   endswith	copy_withri   r?   s     rA   r   "BaseClient._enforce_trailing_slash   s6    <<  &&J}}cllT&9}::rC   c           	         UcB  U(       a9  [        5       R                  5        VVs0 s H  u  p4X4c  S O[        US9_M     snn$ 0 $ [        U[        [
        45      (       a	  [        US9OUnSU0$ s  snnf )NrG   zall://)r0   itemsr   
isinstancestrr-   )ri   proxyallow_env_proxieskeyr?   s        rA   _get_proxy_mapBaseClient._get_proxy_map   s|     =  %<$=$C$C$E$E %C.@$E  I(253*(E(EEe$5Ee$$s   A0c                    U R                   $ rc   )r   r   s    rA   r   BaseClient.timeout   s    }}rC   c                $    [        U5      U l        g rc   )r   r   )ri   r   s     rA   r   r         (rC   c                    U R                   $ rc   )r   r   s    rA   r   BaseClient.event_hooks  s       rC   c                |    [        UR                  S/ 5      5      [        UR                  S/ 5      5      S.U l        g r   )r   rF   r   )ri   r   s     rA   r   r   	  s4     KOOIr:;[__Z<=
rC   c                    U R                   $ )z
Authentication class used when none is passed at the request-level.

See also [Authentication][0].

[0]: /quickstart/#authentication
)r   r   s    rA   r   BaseClient.auth  s     zzrC   c                0    U R                  U5      U l        g rc   )r   r   ri   r   s     rA   r   r     s    %%d+
rC   c                    U R                   $ )z;
Base URL to use when sending requests with relative URLs.
)r   r   s    rA   r   BaseClient.base_url  s    
 ~~rC   c                B    U R                  [        U5      5      U l        g rc   )r   r-   r   r   s     rA   r   r   &  s    55c#h?rC   c                    U R                   $ )z0
HTTP headers to include when sending requests.
)_headersr   s    rA   r   BaseClient.headers*      
 }}rC   c                    [        S[        R                  S5      S[        R                  S5      S.5      nUR	                  U5        X l        g )Ns   */*asciis
   keep-alive)s   Accepts   Accept-Encodings
   Connections
   User-Agent)r   ACCEPT_ENCODINGencode
USER_AGENTupdater   )ri   r   client_headerss      rA   r   r   1  sH     !$3$:$:7$C,)009	
 	g&&rC   c                    U R                   $ )z1
Cookie values to include when sending requests.
)r   r   s    rA   r   BaseClient.cookies>  r   rC   c                $    [        U5      U l        g rc   )r   r   )ri   r   s     rA   r   r   E  r   rC   c                    U R                   $ )z?
Query parameters to include in the URL when sending requests.
)r   r   s    rA   r   BaseClient.paramsI  s    
 ||rC   c                $    [        U5      U l        g rc   )r.   r   )ri   r   s     rA   r   r   P  s    "6*rC   )	contentdatafilesjsonr   r   r   r   
extensionsc       	        Z   U R                  U5      nU R                  U5      nU R                  U	5      n	U R                  U5      nUc  0 OUnSU;  aI  [	        U
[
        5      (       a  U R                  O
[        U
5      n
[        S0 UDSU
R                  5       0D6n[        UUUUUUUUU	US9
$ )a  
Build and return a request instance.

* The `params`, `headers` and `cookies` arguments
are merged with any values set on the client.
* The `url` argument is merged with any `base_url` set on the client.

See also: [Request instances][0]

[0]: /advanced/clients/#request-instances
r   )r   r   r   r   r   r   r   r   rN   )
_merge_url_merge_headers_merge_cookies_merge_queryparamsr   rL   r   r   dictas_dictr   )ri   methodr?   r   r   r   r   r   r   r   r   r   s               rA   build_requestBaseClient.build_requestT  s    4 ooc"%%g.%%g.((0%-R:
J& g'788 W% 
 F
FGOO4EFJ!
 	
rC   c                    [        U5      nUR                  (       aK  U R                  R                  UR                  R	                  S5      -   nU R                  R                  US9$ U$ )zs
Merge a URL argument together with any 'base_url' on the client,
to create the URL used for the outgoing request.
r   r   )r-   is_relative_urlr   r   lstripr   )ri   r?   	merge_urlmerge_raw_paths       rA   r   BaseClient._merge_url  s\    
 H	$$ "]]33i6H6H6O6OPT6UUN==**N*CCrC   c                    U(       d  U R                   (       a(  [        U R                   5      nUR                  U5        U$ U$ )zx
Merge a cookies argument together with any cookies on the client,
to create the cookies used for the outgoing request.
)r   r   r   )ri   r   merged_cookiess      rA   r   BaseClient._merge_cookies  s4    
 dll$T\\2N!!'*!!rC   c                R    [        U R                  5      nUR                  U5        U$ )zx
Merge a headers argument together with any headers on the client,
to create the headers used for the outgoing request.
)r   r   r   )ri   r   merged_headerss      rA   r   BaseClient._merge_headers  s&    
 !.g&rC   c                    U(       d  U R                   (       a&  [        U R                   5      nUR                  U5      $ U$ )z
Merge a queryparams argument together with any queryparams on the client,
to create the queryparams used for the outgoing request.
)r   r.   merge)ri   r   merged_queryparamss      rA   r   BaseClient._merge_queryparams  s2     T[[!,T[[!9%++F33rC   c                    Uc  g [        U[        5      (       a  [        US   US   S9$ [        U[        5      (       a  U$ [	        U5      (       a	  [        US9$ [        SU< 35      e)Nr   r   usernamepassword)funczInvalid "auth" argument: )r   tupler
   r	   callabler   	TypeErrorr   s     rA   r   BaseClient._build_auth  se    <e$$d1gQ@@d##Kd^^T**7x@AArC   c                   [        U[        5      (       a  U R                  OU R                  U5      nUb  U$ UR                  R
                  UR                  R                  pCU(       d  U(       a	  [        X4S9$ [        5       $ )Nr  )	r   rL   r   r   r?   r	  r
  r
   r	   )ri   r   r   r	  r
  s        rA   _build_request_authBaseClient._build_request_auth  sj     %T+;<<DJJ$BRBRSWBX 	 K$[[117;;3G3G(xhBBvrC   c           	         U R                  X5      nU R                  X5      nU R                  XU5      nU R                  X5      n[	        U R
                  5      n[        UUUUUUR                  S9$ )zk
Given a request and a redirect response, return a new request that
should be used to effect the redirect.
)r   r?   r   r   rj   r   )_redirect_method_redirect_url_redirect_headers_redirect_streamr   r   r   r   )ri   r   rk   r   r?   r   rj   r   s           rA   _build_redirect_request"BaseClient._build_redirect_request  sy    
 &&w9  3((v>&&w7$,,'))
 	
rC   c                   UR                   nUR                  [        R                  :X  a  US:w  a  SnUR                  [        R                  :X  a  US:w  a  SnUR                  [        R
                  :X  a  US:X  a  SnU$ )zs
When being redirected we may want to change the method of the request
based on certain specs or browser behavior.
HEADGETPOST)r   status_coder   	SEE_OTHERFOUNDMOVED_PERMANENTLY)ri   r   rk   r   s       rA   r  BaseClient._redirect_method  st    
  5??2v7GF 5;;.6V3CF 5#:#::v?OFrC   c                   UR                   S   n [        U5      nUR                  (       a4  UR
                  (       d#  UR                  UR                  R
                  S9nUR                  (       a  UR                  R                  U5      nUR                  R                  (       a4  UR                  (       d#  UR                  UR                  R                  S9nU$ ! [         a  n[        SU S3US9SeSnAff = f)z,
Return the URL for the redirect to follow.
Locationz Invalid URL in location header: .r   N)r<   )fragment)r   r-   r   r   r=   r<   r   r?   r   joinr'  )ri   r   rk   r@   r?   excs         rA   r  BaseClient._redirect_url  s     ##J/	h-C ::chh--W[[%5%5-6C ++""3'C ;;--)=)=->C
'  	%23%q97	s   C 
C<(C77C<c                   [        UR                  5      n[        X!R                  5      (       dK  [	        UR                  U5      (       d  UR                  SS5        UR                  R                  S5      US'   X1R                  :w  a*  US:X  a$  UR                  SS5        UR                  SS5        UR                  SS5        U$ )	zB
Return the headers that should be used for the redirect request.
AuthorizationNr   Hostr  zContent-LengthzTransfer-EncodingCookie)	r   r   rJ   r?   rB   popnetlocdecoder   )ri   r   r?   r   r   s        rA   r  BaseClient._redirect_headers"  s     '//*C--%gkk377 OT2 "jj//8GFO^^#% KK($/KK+T2 	Hd#rC   c                F    X!R                   :w  a  US:X  a  gUR                  $ )z?
Return the body that should be used for the redirect request.
r  N)r   rj   )ri   r   r   s      rA   r  BaseClient._redirect_stream=  s!     ^^#%~~rC   c                    SUR                   ;  am  [        U R                  [        5      (       a  U R                  O[	        U R                  5      n[        S0 UR                   DSUR                  5       0D6Ul         g g )Nr   rN   )r   r   r   rL   r   r   r   )ri   r   r   s      rA   _set_timeoutBaseClient._set_timeoutH  sg    G... dll,<== T\\* 
 "&!V(:(:!VGOODU!VG /rC   )r   r   r   r   r   r   r   r   r   r   r   r   r   )r   AuthTypes | Noner   QueryParamTypes | Noner   HeaderTypes | Noner   CookieTypes | Noner   r,   r   boolr   intr   +None | typing.Mapping[str, list[EventHook]]r   	URL | strr   r<  r   #str | typing.Callable[[bytes], str]r   r   )r   r<  )r?   r-   r   r-   )r   ProxyTypes | Noner   r<  r   zdict[str, Proxy | None])r   r   )r   r,   r   r   )r   dict[str, list[EventHook]])r   rB  r   r   )r   Auth | None)r   r!   r   r   )r   r-   )r?   r?  r   r   )r   r   )r   r$   r   r   )r   r   )r   r#   r   r   )r   r.   )r   r&   r   r   )r   r   r?   r?  r   RequestContent | Noner   RequestData | Noner   RequestFiles | Noner   typing.Any | Noner   r9  r   r:  r   r;  r   TimeoutTypes | UseClientDefaultr   RequestExtensions | Noner   r   )r?   r?  r   r-   rc   )r   r;  r   r;  )r   r:  r   r:  )r   r9  r   r9  )r   r8  r   rC  )r   r   r   #AuthTypes | UseClientDefault | Noner   r	   )r   r   rk   r   r   r   )r   r   rk   r   r   r   )r   r   rk   r   r   r-   )r   r   r?   r-   r   r   r   r   )r   r   r   r   r   z'SyncByteStream | AsyncByteStream | None)r   r   r   r   )#rO   rP   rQ   rR   r   r   rm   propertyr   r   r   r   r   setterr   r   r   r   r   r   r1   r   r   r   r   r   r   r  r  r  r  r  r  r6  rT   rN   rC   rA   r   r      sL    "&)-&*&* 6!&2EI @G +  + '	 +
 $ + $ +  +  +  + C +  +  + > + 
 +D 1 1  ;
%&%;?%	 %   ^^) ) ! ! 
 
   
[[, ,   __@ @   ^^
' 
'   ^^) )   ]]+ + *.#'%)"&)-&*&*3E/31
1
 1

 '1
 !1
 #1
  1
 '1
 $1
 $1
 11
 -1
 
1
f,	 04
,
	

B 5G 2 
	$
&.:6		(+		0	WrC   r   c                    ^  \ rS rSrSrSSSSSSSSSSS\S\\SSSSS.                                       S!U 4S	 jjjrSSSSS\S4               S"S
 jjr	SSSSS\4               S#S jjr
S$S jrSSSSSSS\\\SS.                           S%S jjr\SSSSSSS\\\SS.                           S&S jj5       rS\\S.         S'S jjr          S(S jr        S)S jrS*S jrSSS\\\SS.                 S+S jjrSSS\\\SS.                 S,S jjrSSS\\\SS.                 S,S jjrSSSSSSS\\\SS.                         S-S jjrSSSSSSS\\\SS.                         S-S jjrSSSSSSS\\\SS.                         S-S jjrSSS\\\SS.                 S,S jjrS.S jrS/S jr   S0       S1S jjrS rU =r$ )2r3   iR  a  
An HTTP client, with connection pooling, HTTP/2, redirects, cookie persistence, etc.

It can be shared between threads.

Usage:

```python
>>> client = httpx.Client()
>>> response = client.get('https://example.org')
```

**Parameters:**

* **auth** - *(optional)* An authentication class to use when sending
requests.
* **params** - *(optional)* Query parameters to include in request URLs, as
a string, dictionary, or sequence of two-tuples.
* **headers** - *(optional)* Dictionary of HTTP headers to include when
sending requests.
* **cookies** - *(optional)* Dictionary of Cookie items to include when
sending requests.
* **verify** - *(optional)* Either `True` to use an SSL context with the
default CA bundle, `False` to disable verification, or an instance of
`ssl.SSLContext` to use a custom context.
* **http2** - *(optional)* A boolean indicating if HTTP/2 support should be
enabled. Defaults to `False`.
* **proxy** - *(optional)* A proxy URL where all the traffic should be routed.
* **timeout** - *(optional)* The timeout configuration to use when sending
requests.
* **limits** - *(optional)* The limits configuration to use.
* **max_redirects** - *(optional)* The maximum number of redirect responses
that should be followed.
* **base_url** - *(optional)* A URL to use as the base when building
request URLs.
* **transport** - *(optional)* A transport class to use for sending requests
over the network.
* **trust_env** - *(optional)* Enables or disables usage of environment
variables for configuration.
* **default_encoding** - *(optional)* The default encoding to use for decoding
response text, if no charset information is included in a response Content-Type
header. Set to a callable for automatic character set detection. Default: "utf-8".
NTFr   r   )r   r   r   r   verifycertr   http1http2r   mountsr   r   limitsr   r   r   	transportr   c                 > [         TU ]  UUUUUUUUUUUS9  U	(       a   SS KnU=(       a    US L nU R	                  U
U5      nU R                  UUUUU	UUS9U l        UR                  5        VV
s0 s H*  u  nn
[        U5      U
c  S OU R                  U
UUUUU	US9_M,     sn
nU l
        UbI  U R                  R                  UR                  5        VVs0 s H  u  nn[        U5      U_M     snn5        [        [        U R                  R                  5       5      5      U l
        g ! [         a    [        S5      S ef = fs  sn
nf s  snnf Nr   r   zuUsing http2=True, but the 'h2' package is not installed. Make sure to install httpx using `pip install httpx[http2]`.)rN  rO  r   rP  rQ  rS  rT  rN  rO  r   rP  rQ  rS  superrm   h2ImportErrorr   _init_transport
_transportr   r/   _init_proxy_transport_mountsr   r   sorted)ri   r   r   r   r   rN  rO  r   rP  rQ  r   rR  r   r   rS  r   r   r   rT  r   rZ  r   	proxy_mapr   	__class__s                           rA   rm   Client.__init__  s   . 	-'#- 	 	
  &;)t*;''/@A	.. / 
* (oo/@
 0
U sO} "++# , 
 0@
 LLBH,,.Q.YC)+.Q F4<<#5#5#789K  !S $@
  R   D) 11EE	
)E c           	     (    Ub  U$ [        UUUUUUS9$ NrW  r   ri   rN  rO  r   rP  rQ  rS  rT  s           rA   r\  Client._init_transport  s/      
 	
rC   c           
          [        UUUUUUUS9$ N)rN  rO  r   rP  rQ  rS  r   rg  ri   r   rN  rO  r   rP  rQ  rS  s           rA   r^  Client._init_proxy_transport  s&     
 	
rC   c                    U R                   R                  5        H0  u  p#UR                  U5      (       d  M  Uc  U R                  s  $ Us  $    U R                  $ z
Returns the transport instance that should be used for a given URL.
This will either be the standard connection pool, or a proxy.
r_  r   matchesr]  ri   r?   patternrT  s       rA   _transport_for_urlClient._transport_for_url  M    
 #',,"4"4"6Gs##*3*;tJJ #7 rC   r   r   r   r   r   r   r   r   r   r   r   c                   U	b  Sn[         R                  " U[        SS9  U R                  UUUUUUUUU	UUS9nU R	                  XUS9$ )aQ  
Build and send a request.

Equivalent to:

```python
request = client.build_request(...)
response = client.send(request, ...)
```

See `Client.build_request()`, `Client.send()` and
[Merging of configuration][0] for how the various parameters
are merged with client-level configuration.

[0]: /advanced/clients/#merging-of-configuration
Setting per-request cookies=<...> is being deprecated, because the expected behaviour on cookie persistence is ambiguous. Set cookies directly on the client instance instead.rZ   
stacklevelr   r?   r   r   r   r   r   r   r   r   r   r   r   warningswarnDeprecationWarningr   sendri   r   r?   r   r   r   r   r   r   r   r   r   r   r   messager   s                   rA   r   Client.request  su    B C 
 MM'#5!D$$! % 
 yy>NyOOrC   c             #     #    U R                  UUUUUUUUU	UUS9nU R                  UU
USS9n Uv   UR                  5         g! UR                  5         f = f7fz
Alternative to `httpx.request()` that streams the response body
instead of loading it into memory at once.

**Parameters**: See `httpx.request`.

See also: [Streaming Responses][0]

[0]: /quickstart#streaming-responses
r|  T)r   r   r   rj   N)r   r  r~   ri   r   r?   r   r   r   r   r   r   r   r   r   r   r   r   rk   s                   rA   rj   Client.stream;  s|     8 $$! % 
 99-	  
	NNNHNNs   ,AA AAArj   r   r   c                  U R                   [        R                  :X  a  [        S5      e[        R                  U l         [        U[        5      (       a  U R                  OUnU R                  U5        U R                  X5      nU R                  UUU/ S9n U(       d  UR                  5         U$ ! [         a  nUR                  5         UeSnAff = f)aK  
Send a request.

The request is sent as-is, unmodified.

Typically you'll want to build one with `Client.build_request()`
so that any client-level configuration is merged into the request,
but passing an explicit `httpx.Request()` is supported as well.

See also: [Request instances][0]

[0]: /advanced/clients/#request-instances
5Cannot send a request, as the client has been closed.r   r   historyN)r   rX   r^   RuntimeErrorr]   r   rL   r   r6  r  _send_handling_authreadBaseExceptionr~   ri   r   rj   r   r   rk   r)  s          rA   r  Client.sendo  s    * ;;+,,,VWW!(( *,<== !!! 	 	'"''6++-	 , 
	O 	NNI	s   B0 0
C:CCc                   UR                  U5      n [        U5      n U R                  UUUS9n  UR                  U5      n[        U5      Ul        UR                  5         UnUR                  U5        MY  ! [         a    Us UR                  5         $ f = f! [         a  nUR                  5         UeS nAff = f! UR                  5         f = fN)r   r  )sync_auth_flownext_send_handling_redirectsr  StopIterationr~   r   r  r  appendr  	ri   r   r   r   r  	auth_flowrk   next_requestr)  s	            rA   r  Client._send_handling_auth  s     ''0		9oG88%5# 9 
('0~~h'? (,G}H$MMO*GNN8,  ) (' OO( % NN$I OOsL   B> A8 3B 6B> 8BB BB 
B;$B66B;;B> >Cc                    [        U5      U R                  :  a
  [        SUS9eU R                  S    H  nU" U5        M     U R	                  U5      n U R                  S    H  nU" U5        M     [        U5      Ul        UR                  (       d  U$ U R                  X5      nX5/-   nU(       a  UR                  5         OXl
        U$ M  ! [         a  nUR                  5         UeS nAff = fNz#Exceeded maximum allowed redirects.r&  r   rk   )lenr   r   r   _send_single_requestr   r  has_redirect_locationr  r  r  r  r~   ri   r   r   r  hookrk   r)  s          rA   r  Client._send_handling_redirects  s     7|d000&97  )))4W 5 009H --j9DN :#'= 55#O66wI!J.#MMO,3)#O3 6 !  	s%   A C -C C 
C/C**C/c                   U R                  UR                  5      n[        R                  " 5       n[	        UR
                  [        5      (       d  [        S5      e[        US9   UR                  U5      nSSS5        [	        WR
                  [        5      (       d   eXl
        [        UR
                  XCS9Ul        U R                  R                  U5        U R                  Ul        [         R#                  SUR$                  UR                  UR&                  UR(                  UR*                  5        U$ ! , (       d  f       N= f)<
Sends a single request, without handling any redirections.
z?Attempted to send an async request with a sync Client instance.r&  Nrk   rl   HTTP Request: %s %s "%s %d %s")rt  r?   ry   rz   r   rj   r+   r  r   handle_requestr   r`   r   extract_cookiesr   r   loggerinfor   http_versionr  reason_phraseri   r   rT  rl   rk   s        rA   r  Client._send_single_request  s    ++GKK8	!!#'...99Q  W- //8H . (//>::::")OOh
 	$$X.$($:$:!,NNKK!!  ""	
 + .-s   $D88
Er   r   r   r   r   r   r   c               0    U R                  SUUUUUUUUS9	$ )=
Send a `GET` request.

**Parameters**: See `httpx.request`.
r  r  r&  	ri   r?   r   r   r   r   r   r   r   s	            rA   rF   
Client.get  s5    " ||-!  

 
	
rC   c               0    U R                  SUUUUUUUUS9	$ )B
Send an `OPTIONS` request.

**Parameters**: See `httpx.request`.
OPTIONSr  r&  r  s	            rA   optionsClient.options)  s5    " ||-!  

 
	
rC   c               0    U R                  SUUUUUUUUS9	$ )>
Send a `HEAD` request.

**Parameters**: See `httpx.request`.
r  r  r&  r  s	            rA   headClient.headF  s5    " ||-!  

 
	
rC   c               8    U R                  SUUUUUUUUU	U
UUS9$ )>
Send a `POST` request.

**Parameters**: See `httpx.request`.
r  rw  r&  ri   r?   r   r   r   r   r   r   r   r   r   r   r   s                rA   postClient.postc  sA    * ||-!  
 	
rC   c               8    U R                  SUUUUUUUUU	U
UUS9$ )=
Send a `PUT` request.

**Parameters**: See `httpx.request`.
PUTrw  r&  r  s                rA   put
Client.put  sA    * ||-!  
 	
rC   c               8    U R                  SUUUUUUUUU	U
UUS9$ )?
Send a `PATCH` request.

**Parameters**: See `httpx.request`.
PATCHrw  r&  r  s                rA   patchClient.patch  sA    * ||-!  
 	
rC   c               0    U R                  SUUUUUUUUS9	$ )@
Send a `DELETE` request.

**Parameters**: See `httpx.request`.
DELETEr  r&  r  s	            rA   deleteClient.delete  s5    " ||-!  

 
	
rC   c                   U R                   [        R                  :w  af  [        R                  U l         U R                  R	                  5         U R
                  R                  5        H  nUc  M  UR	                  5         M     ggz
Close transport and proxies.
N)r   rX   r^   r]  r~   r_  values)ri   rT  s     rA   r~   Client.close  s_     ;;+,,,%,,DKOO!!#!\\002	(OO% 3	 -rC   c                   U R                   [        R                  :w  a:  [        R                  S[        R                  S0U R                      n[        U5      e[        R                  U l         U R                  R                  5         U R                  R                  5        H  nUc  M  UR                  5         M     U $ Nz-Cannot open a client instance more than once.z9Cannot reopen a client instance, once it has been closed.)
r   rX   r\   r]   r^   r  r]  	__enter__r_  r  )ri   msgrT  s      rA   r  Client.__enter__  s    ;;+...""$S""O
 kkC s##!((!!#,,.I$##% / rC   c                    [         R                  U l        U R                  R	                  XU5        U R
                  R                  5        H  nUc  M  UR	                  XU5        M     g rc   )rX   r^   r   r]  __exit__r_  r  )ri   exc_type	exc_value	tracebackrT  s        rA   r  Client.__exit__  sR     "((  i@,,.I$""8	B /rC   r_  r   r]  )(r   r8  r   r9  r   r:  r   r;  rN  ssl.SSLContext | str | boolrO  CertTypes | Noner   r<  rP  r<  rQ  r<  r   rA  rR  z0None | typing.Mapping[str, BaseTransport | None]r   r,   r   r<  rS  r   r   r=  r   r>  r   r?  rT  BaseTransport | Noner   r@  r   r   )rN  r  rO  r  r   r<  rP  r<  rQ  r<  rS  r   rT  r  r   r   )r   r   rN  r  rO  r  r   r<  rP  r<  rQ  r<  rS  r   r   r   )r?   r-   r   r   r   r   r?   r?  r   rD  r   rE  r   rF  r   rG  r   r9  r   r:  r   r;  r   rJ  r   bool | UseClientDefaultr   rH  r   rI  r   r   )r   r   r?   r?  r   rD  r   rE  r   rF  r   rG  r   r9  r   r:  r   r;  r   rJ  r   r  r   rH  r   rI  r   ztyping.Iterator[Response]
r   r   rj   r<  r   rJ  r   r  r   r   
r   r   r   r	   r   r<  r  list[Response]r   r   r   r   r   r<  r  r  r   r   r   r   r   r   r?   r?  r   r9  r   r:  r   r;  r   rJ  r   r  r   rH  r   rI  r   r   r?   r?  r   r9  r   r:  r   r;  r   AuthTypes | UseClientDefaultr   r  r   rH  r   rI  r   r   r?   r?  r   rD  r   rE  r   rF  r   rG  r   r9  r   r:  r   r;  r   r  r   r  r   rH  r   rI  r   r   r   )ri   r4   r   r4   NNNr  ztype[BaseException] | Noner  zBaseException | Noner  zTracebackType | Noner   r   ) rO   rP   rQ   rR   rS   r   r   r   rm   r\  r^  rt  r1   r   r   rj   r  r  r  r  rF   r  r  r  r  r  r  r~   r  r  rT   __classcell__rb  s   @rA   r3   r3   R  sK   *^ "&)-&*&*.2!%#'EI 6!&'2EI *.@G+M: M: '	M:
 $M: $M: ,M: M: M: M: M: !M: CM: M: M:  !M:" #M:$ C%M:& 'M:( ()M:* >+M:, 
-M: M:b /3!%'*.
+
 
 	

 
 
 
 (
 

2 /3!%'

 ,
 	

 
 
 
 
 

(	  *.#'%)"&)-&*&*4F4F3E/36P6P 6P
 '6P !6P #6P  6P '6P $6P $6P 26P 26P 16P -6P  
!6Pp  *.#'%)"&)-&*&*4F4F3E/311 1
 '1 !1 #1  1 '1 $1 $1 21 21 11 -1  
#!1 1n 4F4F11 	1
 21 21 
1f     	 
    
 D## #  	#
 
#J!N *.&*&*4F4F3E/3

 '	

 $
 $
 2
 2
 1
 -
 

B *.&*&*-?4F3E/3

 '	

 $
 $
 +
 2
 1
 -
 

B *.&*&*-?4F3E/3

 '	

 $
 $
 +
 2
 1
 -
 

B *.#'%)"&)-&*&*-?4F3E/3#
#
 '	#

 !#
 ##
  #
 '#
 $#
 $#
 +#
 2#
 1#
 -#
 
#
R *.#'%)"&)-&*&*-?4F3E/3#
#
 '	#

 !#
 ##
  #
 '#
 $#
 $#
 +#
 2#
 1#
 -#
 
#
R *.#'%)"&)-&*&*-?4F3E/3#
#
 '	#

 !#
 ##
  #
 '#
 $#
 $#
 +#
 2#
 1#
 -#
 
#
R *.&*&*-?4F3E/3

 '	

 $
 $
 +
 2
 1
 -
 

:
&( 04*.*.	C,C (C (	C
 
C CrC   c                    ^  \ rS rSrSrSSSSSSSSSS\S\\SSSSSS.                                       S!U 4S	 jjjrSSSSS\S4               S"S
 jjr	SSSSS\4               S#S jjr
S$S jrSSSSSSS\\\SS.                           S%S jjr\SSSSSSS\\\SS.                           S&S jj5       rS\\S.         S'S jjr          S(S jr        S)S jrS*S jrSSS\\\SS.                 S+S jjrSSS\\\SS.                 S,S jjrSSS\\\SS.                 S,S jjrSSSSSSS\\\SS.                         S-S jjrSSSSSSS\\\SS.                         S-S jjrSSSSSSS\\\SS.                         S-S jjrSSS\\\SS.                 S,S jjrS.S jrS/S jr   S0       S1S jjrS rU =r$ )2r2   i  a	  
An asynchronous HTTP client, with connection pooling, HTTP/2, redirects,
cookie persistence, etc.

It can be shared between tasks.

Usage:

```python
>>> async with httpx.AsyncClient() as client:
>>>     response = await client.get('https://example.org')
```

**Parameters:**

* **auth** - *(optional)* An authentication class to use when sending
requests.
* **params** - *(optional)* Query parameters to include in request URLs, as
a string, dictionary, or sequence of two-tuples.
* **headers** - *(optional)* Dictionary of HTTP headers to include when
sending requests.
* **cookies** - *(optional)* Dictionary of Cookie items to include when
sending requests.
* **verify** - *(optional)* Either `True` to use an SSL context with the
default CA bundle, `False` to disable verification, or an instance of
`ssl.SSLContext` to use a custom context.
* **http2** - *(optional)* A boolean indicating if HTTP/2 support should be
enabled. Defaults to `False`.
* **proxy** - *(optional)* A proxy URL where all the traffic should be routed.
* **timeout** - *(optional)* The timeout configuration to use when sending
requests.
* **limits** - *(optional)* The limits configuration to use.
* **max_redirects** - *(optional)* The maximum number of redirect responses
that should be followed.
* **base_url** - *(optional)* A URL to use as the base when building
request URLs.
* **transport** - *(optional)* A transport class to use for sending requests
over the network.
* **trust_env** - *(optional)* Enables or disables usage of environment
variables for configuration.
* **default_encoding** - *(optional)* The default encoding to use for decoding
response text, if no charset information is included in a response Content-Type
header. Set to a callable for automatic character set detection. Default: "utf-8".
NTFr   r   )r   r   r   r   rN  rO  rP  rQ  r   rR  r   r   rS  r   r   r   rT  r   r   c                 > [         TU ]  UUUUUUUUUUUS9  U(       a   SS KnU=(       a    US L nU R	                  U	U5      nU R                  UUUUUUUS9U l        UR                  5        VV	s0 s H*  u  nn	[        U5      U	c  S OU R                  U	UUUUUUS9_M,     sn	nU l
        U
bI  U R                  R                  U
R                  5        VVs0 s H  u  nn[        U5      U_M     snn5        [        [        U R                  R                  5       5      5      U l
        g ! [         a    [        S5      S ef = fs  sn	nf s  snnf rV  rX  )ri   r   r   r   r   rN  rO  rP  rQ  r   rR  r   r   rS  r   r   r   rT  r   r   rZ  r   ra  r   rb  s                           rA   rm   AsyncClient.__init__I  s   . 	-'#- 	 	
  &;)t*;''/@A	.. / 
, (oo/E
 0
U sO} "++# , 
 0E
 LLBH,,.Q.YC)+.Q F4<<#5#5#789K  !S &E
  Rrd  c           	     (    Ub  U$ [        UUUUUUS9$ rf  r   rh  s           rA   r\  AsyncClient._init_transport  s/      !
 	
rC   c           
          [        UUUUUUUS9$ rk  r  rl  s           rA   r^  !AsyncClient._init_proxy_transport  s&     "
 	
rC   c                    U R                   R                  5        H0  u  p#UR                  U5      (       d  M  Uc  U R                  s  $ Us  $    U R                  $ ro  rp  rr  s       rA   rt  AsyncClient._transport_for_url  rv  rC   rw  c                  #    U	b  Sn[         R                  " U[        SS9  U R                  UUUUUUUUU	UUS9nU R	                  XUS9I Sh  vN $  N7f)aa  
Build and send a request.

Equivalent to:

```python
request = client.build_request(...)
response = await client.send(request, ...)
```

See `AsyncClient.build_request()`, `AsyncClient.send()`
and [Merging of configuration][0] for how the various parameters
are merged with client-level configuration.

[0]: /advanced/clients/#merging-of-configuration
Nry  rZ   rz  r|  r}  r~  r  s                   rA   r   AsyncClient.request  s~     D C 
 MM'#5!D$$! % 
 YYwDTYUUUUs   AAAAc                 #    U R                  UUUUUUUUU	UUS9nU R                  UU
USS9I Sh  vN n U7v   UR                  5       I Sh  vN   g N# N! UR                  5       I Sh  vN    f = f7fr  )r   r  r   r  s                   rA   rj   AsyncClient.stream  s     8 $$! % 
 -	 # 
 
	$N//###
 $(//###sC   /A7AA7A A7AA7A7A4-A0.A44A7r  c                 #    U R                   [        R                  :X  a  [        S5      e[        R                  U l         [        U[        5      (       a  U R                  OUnU R                  U5        U R                  X5      nU R                  UUU/ S9I Sh  vN n U(       d  UR                  5       I Sh  vN   U$  N& N! [         a   nUR                  5       I Sh  vN    UeSnAff = f7f)aP  
Send a request.

The request is sent as-is, unmodified.

Typically you'll want to build one with `AsyncClient.build_request()`
so that any client-level configuration is merged into the request,
but passing an explicit `httpx.Request()` is supported as well.

See also: [Request instances][0]

[0]: /advanced/clients/#request-instances
r  r  N)r   rX   r^   r  r]   r   rL   r   r6  r  r  areadr  r   r  s          rA   r  AsyncClient.send:  s     * ;;+,,,VWW!(( *,<== !!! 	 	'"''611-	 2 
 
	nn&&&O
 '  	//###I	sT   BC3CC3!C ;C<C C3C 
C0C+#C&$C++C00C3c                >  #    UR                  U5      n UR                  5       I S h  vN n U R                  UUUS9I S h  vN n  UR                  U5      I S h  vN n[        U5      Ul        UR                  5       I S h  vN   UnUR                  U5        Mq   Nv N^ NE! [         a    Us UR                  5       I S h  vN    $ f = f NJ! [         a   nUR                  5       I S h  vN    UeS nAff = f! UR                  5       I S h  vN    f = f7fr  )async_auth_flow	__anext__r  asendStopAsyncIterationr   r   r  r  r  r  r  s	            rA   r  AsyncClient._send_handling_authm  s     ((1		%%//11G!%!>!>%5# "? " 
(-6__X-F'F (,G}H$"..****GNN8,  2 (G- (' ""$$$( + % "//+++I ""$$$s   DC? BC? B!C? 	B% B#B% "#C CC C? !C? #B% %C1C 2DCDCC 
C<C7/C20C77C<<C? ?DDDDc                N  #     [        U5      U R                  :  a
  [        SUS9eU R                  S    H  nU" U5      I S h  vN   M     U R	                  U5      I S h  vN n U R                  S    H  nU" U5      I S h  vN   M     [        U5      Ul        UR                  (       d  U$ U R                  X5      nX5/-   nU(       a  UR                  5       I S h  vN   OXl
        U$ M   N N No N! [         a   nUR                  5       I S h  vN    UeS nAff = f7fr  )r  r   r   r   r  r   r  r  r  r  r  r  r   r  s          rA   r  $AsyncClient._send_handling_redirects  s     7|d000&97  )))47m## 5 "66w??H --j9Dx.(( : $(= 55#O66wI!J.#"..***,3)#O5  $? ) +
 ! oo'''	s   AD%C0D%!C2"D%'C8 C4*C8 /D%00C8  C6!C8 %D%&C8 -D%2D%4C8 6C8 8
D"DDDD""D%c                  #    U R                  UR                  5      n[        R                  " 5       n[	        UR
                  [        5      (       d  [        S5      e[        US9   UR                  U5      I Sh  vN nSSS5        [	        WR
                  [        5      (       d   eXl
        [        UR
                  XCS9Ul        U R                  R                  U5        U R                  Ul        [         R#                  SUR$                  UR                  UR&                  UR(                  UR*                  5        U$  N! , (       d  f       N= f7f)r  z?Attempted to send an sync request with an AsyncClient instance.r&  Nr  r  )rt  r?   ry   rz   r   rj   r    r  r   handle_async_requestr   r   r   r  r   r   r  r  r   r  r  r  r  s        rA   r   AsyncClient._send_single_request  s     ++GKK8	!!#'../::Q  W-&;;GDDH . (//?;;;;"*OOh
 	$$X.$($:$:!,NNKK!!  ""	
 ' E .-s1   A$E&E;E<E CEE
EEr  c               L   #    U R                  SUUUUUUUUS9	I Sh  vN $  N7f)r  r  r  Nr&  r  s	            rA   rF   AsyncClient.get  sB     " \\-! " 

 

 
	
 

   $"$c               L   #    U R                  SUUUUUUUUS9	I Sh  vN $  N7f)r  r  r  Nr&  r  s	            rA   r  AsyncClient.options  sB     " \\-! " 

 

 
	
 

r  c               L   #    U R                  SUUUUUUUUS9	I Sh  vN $  N7f)r  r  r  Nr&  r  s	            rA   r  AsyncClient.head  sB     " \\-! " 

 

 
	
 

r  c               T   #    U R                  SUUUUUUUUU	U
UUS9I Sh  vN $  N7f)r  r  rw  Nr&  r  s                rA   r  AsyncClient.post.  sN     * \\-! " 
 
 	
 
   (&(c               T   #    U R                  SUUUUUUUUU	U
UUS9I Sh  vN $  N7f)r  r  rw  Nr&  r  s                rA   r  AsyncClient.putS  sN     * \\-! " 
 
 	
 
r  c               T   #    U R                  SUUUUUUUUU	U
UUS9I Sh  vN $  N7f)r  r  rw  Nr&  r  s                rA   r  AsyncClient.patchx  sN     * \\-! " 
 
 	
 
r  c               L   #    U R                  SUUUUUUUUS9	I Sh  vN $  N7f)r  r  r  Nr&  r  s	            rA   r  AsyncClient.delete  sB     " \\-! " 

 

 
	
 

r  c                <  #    U R                   [        R                  :w  av  [        R                  U l         U R                  R	                  5       I Sh  vN   U R
                  R                  5        H   nUc  M  UR	                  5       I Sh  vN   M"     gg ND N7fr  )r   rX   r^   r]  r   r_  r  )ri   r   s     rA   r   AsyncClient.aclose  sw      ;;+,,,%,,DK//((***,,.$,,.(( /	 - + )s*   ABB"B:BBBBc                  #    U R                   [        R                  :w  a:  [        R                  S[        R                  S0U R                      n[        U5      e[        R                  U l         U R                  R                  5       I S h  vN   U R                  R                  5        H   nUc  M  UR                  5       I S h  vN   M"     U $  ND N7fr  )
r   rX   r\   r]   r^   r  r]  
__aenter__r_  r  )ri   r  r   s      rA   r'  AsyncClient.__aenter__  s     ;;+...""$S""O
 kkC s##!((oo((***\\((*E &&((( + 	 	+ )s*   BCC"C4CCCCc                  #    [         R                  U l        U R                  R	                  XU5      I S h  vN   U R
                  R                  5        H"  nUc  M  UR	                  XU5      I S h  vN   M$     g  NE N7frc   )rX   r^   r   r]  	__aexit__r_  r  )ri   r  r  r  r   s        rA   r*  AsyncClient.__aexit__  sk      "((oo''YGGG\\((*E ooh9EEE + 	H Fs'   5BA="BB3A?4
B?Br  )(r   r8  r   r9  r   r:  r   r;  rN  r  rO  r  rP  r<  rQ  r<  r   rA  rR  z5None | typing.Mapping[str, AsyncBaseTransport | None]r   r,   r   r<  rS  r   r   r=  r   r>  r   r?  rT  AsyncBaseTransport | Noner   r<  r   r@  r   r   )rN  r  rO  r  r   r<  rP  r<  rQ  r<  rS  r   rT  r,  r   r   )r   r   rN  r  rO  r  r   r<  rP  r<  rQ  r<  rS  r   r   r   )r?   r-   r   r   r  )r   r   r?   r?  r   rD  r   rE  r   rF  r   rG  r   r9  r   r:  r   r;  r   rJ  r   r  r   rH  r   rI  r   ztyping.AsyncIterator[Response]r  r  r  r  r  r  r  r   )ri   r6   r   r6   r  r  ) rO   rP   rQ   rR   rS   r   r   r   rm   r\  r^  rt  r1   r   r   rj   r  r  r  r  rF   r  r  r  r  r  r  r   r'  r*  rT   r  r  s   @rA   r2   r2     sK   +` "&)-&*&*.2!%#'JN 6!&'2EI /3@G+M: M: '	M:
 $M: $M: ,M: M: M: M: !M: HM: M: M: M:  !M:" C#M:$ %M:& -'M:( )M:* >+M:, 
-M: M:b /3!%'/3
+
 
 	

 
 
 
 -
 

2 /3!%'

 ,
 	

 
 
 
 
 

(	  *.#'%)"&)-&*&*4F4F3E/37V7V 7V
 '7V !7V #7V  7V '7V $7V $7V 27V 27V 17V -7V  
!7Vr  *.#'%)"&)-&*&*4F4F3E/31$1$ 1$
 '1$ !1$ #1$  1$ '1$ $1$ $1$ 21$ 21$ 11$ -1$  
(!1$ 1$n 4F4F11 	1
 21 21 
1f % %  % 	 %
   % 
 %D$$ $  	$
 
$L L *.&*&*4F4F3E/3

 '	

 $
 $
 2
 2
 1
 -
 

B *.&*&*-?4F3E/3

 '	

 $
 $
 +
 2
 1
 -
 

B *.&*&*-?4F3E/3

 '	

 $
 $
 +
 2
 1
 -
 

B *.#'%)"&)-&*&*-?4F3E/3#
#
 '	#

 !#
 ##
  #
 '#
 $#
 $#
 +#
 2#
 1#
 -#
 
#
R *.#'%)"&)-&*&*-?4F3E/3#
#
 '	#

 !#
 ##
  #
 '#
 $#
 $#
 +#
 2#
 1#
 -#
 
#
R *.#'%)"&)-&*&*-?4F3E/3#
#
 '	#

 !#
 ##
  #
 '#
 $#
 $#
 +#
 2#
 1#
 -#
 
#
R *.&*&*-?4F3E/3

 '	

 $
 $
 +
 2
 1
 -
 

:
)( 04*.*.	F,F (F (	F
 
F FrC   )r?   r-   r@   r-   r   r<  )r?   r-   r   z
int | None)r?   r-   rI   r-   r   r<  )\
__future__r   r{   enumloggingry   typingr  
contextlibr   r   typesr   r   r   r	   r
   r   _configr   r   r   r   r   r   	_decodersr   _exceptionsr   r   r   r   _modelsr   r   r   r   _status_codesr   _transports.baser   r   _transports.defaultr   r   _typesr    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   _urlsr-   r.   _utilsr/   r0   TYPE_CHECKINGssl__all__TypeVarr4   r6   rB   r>   rJ   rL   r1   	getLoggerr  r   r(  keysr   EnumrX   r`   r   CallableAny	EventHookr   r3   r2   )r   s   0rA   <module>rG     s   "       :  $ 0 0  *  9 8   ? B    $ 7	
9 NN3h'
NN3m,6 ( &'  
		7	#[M*
))&++-C-S
1BS-C
$)) n .$ $. OOCO,	SW SWlFCZ FCRHF* HFE% Ds   ?	G G 