
    ,h                    ~   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m	Z	m
Z
 d dlmZ ddlmZ ddlmZmZmZ ddlmZmZmZmZmZmZ dd	lmZ dd
lmZmZmZmZ ddl m!Z!m"Z"m#Z#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) ddl*m+Z+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@ ej                  rd dlBZBg dZC ej                  dd      ZE ej                  dd      ZFd,dZGd-dZHd.dZI G d d      ZJ eJ       ZK ej                  d      ZMde ZNdj                   ej                         D  cg c]
  } | d k7  s	|  c}       ZQ G d! d"ej                        ZS G d# d$e9      ZT G d% d&e.      ZUej                  d'ej                  f   ZX G d( d)      ZY G d* deY      ZZ G d+ deY      Z[yc c} w )/    )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                    | j                   |j                   k7  ry| j                  dk(  xr/ t        |       dk(  xr |j                  dk(  xr t        |      dk(  S )zA
    Return 'True' if 'location' is a HTTPS upgrade of 'url'
    FhttpP   https  )hostscheme_port_or_default)urllocations     O/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/httpx/_client.py_is_https_redirectrB   >   sa     xx8==  	

f 	.S!R'	.OOw&	. X&#-	    c                n    | j                   | j                   S dddj                  | j                        S )Nr9   r;   )r8   r:   )portgetr=   r?   s    rA   r>   r>   M   s/    
xxxx%))#**55rC   c                    | j                   |j                   k(  xr2 | j                  |j                  k(  xr t        |       t        |      k(  S )z@
    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                      e Zd ZdZy)UseClientDefaulta<  
    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____doc__ rC   rA   rL   rL   ^   s    rC   rL   httpxzpython-httpx/z, identityc                      e Zd ZdZdZdZy)ClientStater         N)rM   rN   rO   UNOPENEDOPENEDCLOSEDrQ   rC   rA   rU   rU   }   s     H F FrC   rU   c                  8    e Zd ZdZ	 	 	 	 	 	 	 	 ddZddZddZy)	BoundSyncStreamz
    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                .    || _         || _        || _        y N_stream	_response_startselfstreamresponsestarts       rA   __init__zBoundSyncStream.__init__        !rC   c              #  6   K   | j                   D ]  }|  y wr^   r`   rd   chunks     rA   __iter__zBoundSyncStream.__iter__   s     \\ 	EK	s   c                    t        j                         | j                  z
  }t        j                  |      | j
                  _        | j                  j                          y N)seconds)	timeperf_counterrb   datetime	timedeltara   elapsedr`   closerd   rv   s     rA   rw   zBoundSyncStream.close   s@    ##%3!)!3!3G!DrC   N)re   r+   rf   r   rg   floatreturnNone)rz   ztyping.Iterator[bytes]rz   r{   )rM   rN   rO   rP   rh   rn   rw   rQ   rC   rA   r\   r\      s6    
$08AF	rC   r\   c                  8    e Zd ZdZ	 	 	 	 	 	 	 	 ddZddZddZy)	BoundAsyncStreamz
    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                .    || _         || _        || _        y r^   r_   rc   s       rA   rh   zBoundAsyncStream.__init__   ri   rC   c               H   K   | j                   2 3 d {   }| 7 
6 y wr^   rk   rl   s     rA   	__aiter__zBoundAsyncStream.__aiter__   s&     << 	 	%K	<s   "  " "c                   K   t        j                         | j                  z
  }t        j                  |      | j
                  _        | j                  j                          d {    y 7 wrp   )	rr   rs   rb   rt   ru   ra   rv   r`   acloserx   s     rA   r   zBoundAsyncStream.aclose   sJ     ##%3!)!3!3G!Dll!!###s   A$A.&A,'A.N)re   r    rf   r   rg   ry   rz   r{   )rz   ztyping.AsyncIterator[bytes]r|   )rM   rN   rO   rP   rh   r   r   rQ   rC   rA   r~   r~      s6    
%19BG	$rC   r~   .c                     e Zd Zddddededdddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d(dZed)d       Zed)d	       Zd*d
Z		 	 	 	 	 	 d+dZ
ed,d       Zej                  d-d       Zed.d       Zej                  d/d       Zed0d       Zej                  d1d       Zed2d       Zej                  d3d       Zed4d       Zej                  d5d       Zed6d       Zej                  d7d       Zed8d       Zej                  d9d       Zdddddddedd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d:dZd;dZd<d=dZd<d>dZ	 d<	 	 	 d?dZd@d Zef	 	 	 	 	 dAd!ZdBd"ZdCd#ZdDd$ZdEd%Z	 	 	 	 	 	 dFd&ZdGd'Z y)H
BaseClientNF Tutf-8authparamsheaderscookiestimeoutfollow_redirectsmax_redirectsevent_hooksbase_url	trust_envdefault_encodingc                  |i n|}| j                  t        |	            | _        | j                  |      | _        t        |      | _        t        |      | _        t        |      | _
        t        |      | _        || _        || _        t        |j!                  dg             t        |j!                  dg             d| _        |
| _        || _        t(        j*                  | _        y Nrequestrf   )r   rf   )_enforce_trailing_slashr-   	_base_url_build_auth_authr.   _paramsr   r   r   _cookiesr   _timeoutr   r   listrF   _event_hooks
_trust_env_default_encodingrU   rX   _state)rd   r   r   r   r   r   r   r   r   r   r   r   s               rA   rh   zBaseClient.__init__   s     (/b[55c(mD%%d+
"6*w'(( 0*KOOIr:;[__Z<=
 $!1!**rC   c                <    | j                   t        j                  k(  S )z2
        Check if the client being closed
        )r   rU   rZ   rd   s    rA   	is_closedzBaseClient.is_closed   s    
 {{k0000rC   c                    | j                   S r^   )r   r   s    rA   r   zBaseClient.trust_env   s    rC   c                z    |j                   j                  d      r|S |j                  |j                   dz         S )N   /raw_path)r   endswith	copy_withrd   r?   s     rA   r   z"BaseClient._enforce_trailing_slash   s3    <<  &J}}cllT&9}::rC   c                    |>|r:t               j                         D ci c]  \  }}||d nt        |       c}}S i S t        |t        t
        f      rt        |      n|}d|iS c c}}w )NrG   zall://)r0   itemsr   
isinstancestrr-   )rd   proxyallow_env_proxieskeyr?   s        rA   _get_proxy_mapzBaseClient._get_proxy_map   sx     =  %<$=$C$C$E S %C.@  I(253*(EEe$5Ee$$s   A)c                    | j                   S r^   )r   r   s    rA   r   zBaseClient.timeout   s    }}rC   c                $    t        |      | _        y r^   )r   r   )rd   r   s     rA   r   zBaseClient.timeout      (rC   c                    | j                   S r^   )r   r   s    rA   r   zBaseClient.event_hooks  s       rC   c                |    t        |j                  dg             t        |j                  dg             d| _        y r   )r   rF   r   )rd   r   s     rA   r   zBaseClient.event_hooks	  s4     KOOIr:;[__Z<=
rC   c                    | j                   S )z
        Authentication class used when none is passed at the request-level.

        See also [Authentication][0].

        [0]: /quickstart/#authentication
        )r   r   s    rA   r   zBaseClient.auth  s     zzrC   c                0    | j                  |      | _        y r^   )r   r   rd   r   s     rA   r   zBaseClient.auth  s    %%d+
rC   c                    | j                   S )zK
        Base URL to use when sending requests with relative URLs.
        )r   r   s    rA   r   zBaseClient.base_url  s    
 ~~rC   c                B    | j                  t        |            | _        y r^   )r   r-   r   r   s     rA   r   zBaseClient.base_url&  s    55c#h?rC   c                    | j                   S )z@
        HTTP headers to include when sending requests.
        )_headersr   s    rA   r   zBaseClient.headers*      
 }}rC   c                    t        dt        j                  d      dt        j                  d      d      }|j	                  |       || _        y )Ns   */*asciis
   keep-alive)s   Accepts   Accept-Encodings
   Connections
   User-Agent)r   ACCEPT_ENCODINGencode
USER_AGENTupdater   )rd   r   client_headerss      rA   r   zBaseClient.headers1  sJ     !$3$:$:7$C,)009	
 	g&&rC   c                    | j                   S )zA
        Cookie values to include when sending requests.
        )r   r   s    rA   r   zBaseClient.cookies>  r   rC   c                $    t        |      | _        y r^   )r   r   )rd   r   s     rA   r   zBaseClient.cookiesE  r   rC   c                    | j                   S )zO
        Query parameters to include in the URL when sending requests.
        )r   r   s    rA   r   zBaseClient.paramsI  s    
 ||rC   c                $    t        |      | _        y r^   )r.   r   )rd   r   s     rA   r   zBaseClient.paramsP  s    "6*rC   )	contentdatafilesjsonr   r   r   r   
extensionsc       	        P   | j                  |      }| j                  |      }| j                  |	      }	| j                  |      }|i n|}d|vrDt	        |
t
              r| j                  n
t        |
      }
t        di |d|
j                         i}t        |||||||||	|
      S )aR  
        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   rQ   )
_merge_url_merge_headers_merge_cookies_merge_queryparamsr   rL   r   r   dictas_dictr   )rd   methodr?   r   r   r   r   r   r   r   r   r   s               rA   build_requestzBaseClient.build_requestT  s    4 ooc"%%g.%%g.((0%-R:
J& g'78 W% 
 F
FGOO4EFJ!
 	
rC   c                    t        |      }|j                  rN| j                  j                  |j                  j	                  d      z   }| j                  j                  |      S |S )z
        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   )rd   r?   	merge_urlmerge_raw_paths       rA   r   zBaseClient._merge_url  s\    
 H	$$ "]]33i6H6H6O6OPT6UUN==**N*CCrC   c                r    |s| j                   r(t        | j                         }|j                  |       |S |S )z
        Merge a cookies argument together with any cookies on the client,
        to create the cookies used for the outgoing request.
        )r   r   r   )rd   r   merged_cookiess      rA   r   zBaseClient._merge_cookies  s4    
 dll$T\\2N!!'*!!rC   c                R    t        | j                        }|j                  |       |S )z
        Merge a headers argument together with any headers on the client,
        to create the headers used for the outgoing request.
        )r   r   r   )rd   r   merged_headerss      rA   r   zBaseClient._merge_headers  s&    
 !.g&rC   c                n    |s| j                   r&t        | j                         }|j                  |      S |S )z
        Merge a queryparams argument together with any queryparams on the client,
        to create the queryparams used for the outgoing request.
        )r   r.   merge)rd   r   merged_queryparamss      rA   r   zBaseClient._merge_queryparams  s2     T[[!,T[[!9%++F33rC   c                    |y t        |t              rt        |d   |d         S t        |t              r|S t	        |      rt        |      S t        d|      )Nr   r   usernamepassword)funczInvalid "auth" argument: )r   tupler
   r	   callabler   	TypeErrorr   s     rA   r   zBaseClient._build_auth  s]    <e$d1gQ@@d#Kd^T**7x@AArC   c                    t        |t              r| j                  n| j                  |      }||S |j                  j
                  |j                  j                  }}|s|rt        ||      S t               S )Nr   )	r   rL   r   r   r?   r   r   r
   r	   )rd   r   r   r   r   s        rA   _build_request_authzBaseClient._build_request_auth  sk     %T+;<DJJ$BRBRSWBX 	 K$[[117;;3G3G(xhBBvrC   c                    | j                  ||      }| j                  ||      }| j                  |||      }| j                  ||      }t	        | j
                        }t        ||||||j                        S )z
        Given a request and a redirect response, return a new request that
        should be used to effect the redirect.
        )r   r?   r   r   re   r   )_redirect_method_redirect_url_redirect_headers_redirect_streamr   r   r   r   )rd   r   rf   r   r?   r   re   r   s           rA   _build_redirect_requestz"BaseClient._build_redirect_request  s    
 &&w9  (3((#v>&&w7$,,'))
 	
rC   c                    |j                   }|j                  t        j                  k(  r|dk7  rd}|j                  t        j                  k(  r|dk7  rd}|j                  t        j
                  k(  r|dk(  rd}|S )z
        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)rd   r   rf   r   s       rA   r   zBaseClient._redirect_method  st    
  5??2v7GF 5;;.6V3CF 5#:#::v?OFrC   c                   |j                   d   }	 t        |      }|j                  r2|j
                  s&|j                  |j                  j
                        }|j                  r|j                  j                  |      }|j                  j                  r2|j                  s&|j                  |j                  j                        }|S # t        $ r}t        d| d|      dd}~ww xY w)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  )rd   r   rf   r@   r?   excs         rA   r   zBaseClient._redirect_url  s     ##J/	h-C ::chh--W[[%5%5-6C ++""3'C ;;--)=)=->C
'  	%23%q97	s   C 	C+C&&C+c                |   t        |j                        }t        ||j                        sFt	        |j                  |      s|j                  dd       |j                  j                  d      |d<   ||j                  k7  r)|dk(  r$|j                  dd       |j                  dd       |j                  dd       |S )	zR
        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   )rd   r   r?   r   r   s        rA   r   zBaseClient._redirect_headers"  s     '//*C-%gkk37 OT2 "jj//8GFOW^^#% KK($/KK+T2 	Hd#rC   c                D    ||j                   k7  r|dk(  ry|j                  S )zO
        Return the body that should be used for the redirect request.
        r   N)r   re   )rd   r   r   s      rA   r   zBaseClient._redirect_stream=  s#     W^^#%~~rC   c                    d|j                   vrht        | j                  t              r| j                  nt	        | j                        }t        di |j                   d|j                         i|_         y y )Nr   rQ   )r   r   r   rL   r   r   r   )rd   r   r   s      rA   _set_timeoutzBaseClient._set_timeoutH  sd    G... dll,<= T\\* 
 "&!V(:(:!VGOODU!VG /rC   )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]rz   r{   )rz   r  )r?   r-   rz   r-   )r   ProxyTypes | Noner   r  rz   zdict[str, Proxy | None])rz   r   )r   r,   rz   r{   )rz   dict[str, list[EventHook]])r   r  rz   r{   )rz   Auth | None)r   r!   rz   r{   )rz   r-   )r?   r  rz   r{   )rz   r   )r   r$   rz   r{   )rz   r   )r   r#   rz   r{   )rz   r.   )r   r&   rz   r{   )r   r   r?   r  r   RequestContent | Noner   RequestData | Noner   RequestFiles | Noner   typing.Any | Noner   r  r   r  r   r  r   TimeoutTypes | UseClientDefaultr   RequestExtensions | Nonerz   r   )r?   r  rz   r-   r^   )r   r  rz   r  )r   r  rz   r  )r   r  rz   r  )r   r  rz   r  )r   r   r   #AuthTypes | UseClientDefault | Nonerz   r	   )r   r   rf   r   rz   r   )r   r   rf   r   rz   r   )r   r   rf   r   rz   r-   )r   r   r?   r-   r   r   rz   r   )r   r   r   r   rz   z'SyncByteStream | AsyncByteStream | None)r   r   rz   r{   )!rM   rN   rO   r   r   rh   propertyr   r   r   r   r   setterr   r   r   r   r   r   r1   r   r   r   r   r   r   r   r   r   r   r   r   r  rQ   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                  B    e Zd ZdZdddddddddddedeeddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZdddddedf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d d	Zdddddef	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d!d
Z	d"dZ
dddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d#dZedddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d$d       Zdeed	 	 	 	 	 	 	 	 	 d%dZ	 	 	 	 	 	 	 	 	 	 d&dZ	 	 	 	 	 	 	 	 d'dZd(dZdddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d)dZdddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d*dZdddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d*dZdddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+dZdddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+dZdddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+dZdddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d*dZd,dZd-dZ	 	 	 d.	 	 	 	 	 	 	 d/dZ xZS )0r3   av  
    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         |   |||||||||||       |	r	 dd l}|xr |d u }| j	                  |
|      }| j                  |||||	||      | _        |j                         D 
ci c]+  \  }}
t        |      |
d n| j                  |
|||||	|      - c}
}| _
        |F| j                  j                  |j                         D ci c]  \  }}t        |      | c}}       t        t        | j                  j                                     | _
        y # t        $ r t        d      d w xY wc c}
}w c c}}w Nr   r   zuUsing http2=True, but the 'h2' package is not installed. Make sure to install httpx using `pip install httpx[http2]`.)r'  r(  r   r)  r*  r,  r-  r'  r(  r   r)  r*  r,  superrh   h2ImportErrorr   _init_transport
_transportr   r/   _init_proxy_transport_mountsr   r   sorted)rd   r   r   r   r   r'  r(  r   r)  r*  r   r+  r   r   r,  r   r   r   r-  r   r3  r   	proxy_mapr   	__class__s                           rA   rh   zClient.__init__  s   . 	-'#- 	 	
  &;)t*;''/@A	.. / 
* (oo/@
 U sO} "++# , 
@
 LLBH,,.QYC)+Q F4<<#5#5#789K  !S $@
  R   D  -0D9D?
 D6c                ,    ||S t        ||||||      S Nr0  r   rd   r'  r(  r   r)  r*  r,  r-  s           rA   r5  zClient._init_transport  s/      
 	
rC   c           	     &    t        |||||||      S N)r'  r(  r   r)  r*  r,  r   r?  rd   r   r'  r(  r   r)  r*  r,  s           rA   r7  zClient._init_proxy_transport  s&     
 	
rC   c                    | j                   j                         D ]*  \  }}|j                  |      s|| j                  c S |c S  | j                  S z
        Returns the transport instance that should be used for a given URL.
        This will either be the standard connection pool, or a proxy.
        r8  r   matchesr6  rd   r?   patternr-  s       rA   _transport_for_urlzClient._transport_for_url  S    
 #',,"4"4"6 	KGYs#*3*;tJJ	K rC   r   r   r   r   r   r   r   r   r   r   r   c                   |	d}t        j                  |t        d       | j                  |||||||||	||      }| j	                  ||
|      S )a  
        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.rV   
stacklevelr   r?   r   r   r   r   r   r   r   r   r   r   r   warningswarnDeprecationWarningr   sendrd   r   r?   r   r   r   r   r   r   r   r   r   r   r   messager   s                   rA   r   zClient.request  sw    B C 
 MM'#5!D$$! % 
 yyt>NyOOrC   c             #     K   | j                  |||||||||	||      }| j                  ||
|d      }	 | |j                          y# |j                          w xY wwa  
        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
        rQ  T)r   r   r   re   N)r   rW  rw   rd   r   r?   r   r   r   r   r   r   r   r   r   r   r   r   rf   s                   rA   re   zClient.stream;  s}     8 $$! % 
 99-	  
	NNNHNNs   2AA
 A
AAre   r   r   c                  | j                   t        j                  k(  rt        d      t        j                  | _         t        |t              r| j                  n|}| j                  |       | j                  ||      }| j                  |||g       }	 |s|j                          |S # t        $ r}|j                          |d}~ww xY w)a  
        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   rU   rZ   RuntimeErrorrY   r   rL   r   r  r   _send_handling_authreadBaseExceptionrw   rd   r   re   r   r   rf   r  s          rA   rW  zClient.sendo  s    * ;;+,,,VWW!(( *,<= !!! 	 	'"''6++-	 , 
	O 	NNI	s   B) )	C	2CC	c                   |j                  |      }	 t        |      }	 | j                  |||      }	 	 |j                  |      }t        |      |_        |j                          |}|j                  |       [# t        $ r |cY |j                          S w xY w# t        $ r}|j                          |d }~ww xY w# |j                          w xY wN)r   ra  )sync_auth_flownext_send_handling_redirectsrW  StopIterationrw   r   ra  rd  appendre  	rd   r   r   r   ra  	auth_flowrf   next_requestr  s	            rA   rc  zClient._send_handling_auth  s     ''0		9oG88%5# 9 
('0~~h'? (,G}H$MMO*GNN8,  ) (' OO( % NN$I OOsL    B> A: 3B 9B> :BB BB 	B;$B66B;;B> >Cc                   	 t        |      | j                  kD  rt        d|      | j                  d   D ]
  } ||        | j	                  |      }	 | j                  d   D ]
  } ||        t        |      |_        |j                  s|S | j                  ||      }||gz   }|r|j                          n	||_
        |S 	 # t        $ r}|j                          |d }~ww xY wNz#Exceeded maximum allowed redirects.r  r   rf   )lenr   r   r   _send_single_requestr   ra  has_redirect_locationr   rd  rp  re  rw   rd   r   r   ra  hookrf   r  s          rA   rk  zClient._send_handling_redirects  s    7|d000&97  )))4 W 009H --j9 #DN##'= 55#O66wI!XJ.#MMO,3H)#O $- 6 !  	s   9C 3C 	C%C  C%c                   | j                  |j                        }t        j                         }t	        |j
                  t              st        d      t        |      5  |j                  |      }ddd       t	        j
                  t              sJ ||_
        t        |j
                  ||      |_        | j                  j                  |       | j                  |_        t         j#                  d|j$                  |j                  |j&                  |j(                  |j*                         |S # 1 sw Y   xY w)L
        Sends a single request, without handling any redirections.
        z?Attempted to send an async request with a sync Client instance.r  Nrf   rg   HTTP Request: %s %s "%s %d %s")rJ  r?   rr   rs   r   re   r+   rb  r   handle_requestr   r\   r   extract_cookiesr   r   loggerinfor   http_versionr   reason_phraserd   r   r-  rg   rf   s        rA   rt  zClient._send_single_request  s    ++GKK8	!!#'...9Q  W- 	9 //8H	9 (//>::")OOhe
 	$$X.$($:$:!,NNKK!!  ""	
 +	9 	9s   !D55D>r   r   r   r   r   r   r   c               6    | j                  d||||||||	      S )U
        Send a `GET` request.

        **Parameters**: See `httpx.request`.
        r   r  r  	rd   r?   r   r   r   r   r   r   r   s	            rA   rF   z
Client.get  s5    " ||-!  

 
	
rC   c               6    | j                  d||||||||	      S )Z
        Send an `OPTIONS` request.

        **Parameters**: See `httpx.request`.
        OPTIONSr  r  r  s	            rA   optionszClient.options)  s5    " ||-!  

 
	
rC   c               6    | j                  d||||||||	      S )V
        Send a `HEAD` request.

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

        **Parameters**: See `httpx.request`.
        r   rL  r  rd   r?   r   r   r   r   r   r   r   r   r   r   r   s                rA   postzClient.postc  sA    * ||-!  
 	
rC   c               >    | j                  d|||||||||	|
||      S )U
        Send a `PUT` request.

        **Parameters**: See `httpx.request`.
        PUTrL  r  r  s                rA   putz
Client.put  sA    * ||-!  
 	
rC   c               >    | j                  d|||||||||	|
||      S )W
        Send a `PATCH` request.

        **Parameters**: See `httpx.request`.
        PATCHrL  r  r  s                rA   patchzClient.patch  sA    * ||-!  
 	
rC   c               6    | j                  d||||||||	      S )X
        Send a `DELETE` request.

        **Parameters**: See `httpx.request`.
        DELETEr  r  r  s	            rA   deletezClient.delete  s5    " ||-!  

 
	
rC   c                   | j                   t        j                  k7  rbt        j                  | _         | j                  j	                          | j
                  j                         D ]  }||j	                           yyz.
        Close transport and proxies.
        N)r   rU   rZ   r6  rw   r8  values)rd   r-  s     rA   rw   zClient.close  sd     ;;+,,,%,,DKOO!!#!\\002 &	(OO%&	 -rC   c                v   | j                   t        j                  k7  r:t        j                  dt        j                  di| j                      }t        |      t        j                  | _         | j                  j                          | j                  j                         D ]  }||j                           | S Nz-Cannot open a client instance more than once.z9Cannot reopen a client instance, once it has been closed.)
r   rU   rX   rY   rZ   rb  r6  	__enter__r8  r  )rd   msgr-  s      rA   r  zClient.__enter__  s    ;;+...""$S""O
 kkC s##!((!!#,,. 	&I$##%	& rC   c                    t         j                  | _        | j                  j	                  |||       | j
                  j                         D ]  }||j	                  |||        y r^   )rU   rZ   r   r6  __exit__r8  r  )rd   exc_type	exc_value	tracebackr-  s        rA   r  zClient.__exit__  s]     "((  9i@,,. 	CI$""8Y	B	CrC   )(r   r  r   r  r   r  r   r  r'  ssl.SSLContext | str | boolr(  CertTypes | Noner   r  r)  r  r*  r  r   r  r+  z0None | typing.Mapping[str, BaseTransport | None]r   r,   r   r  r,  r   r   r  r   r  r   r  r-  BaseTransport | Noner   r  rz   r{   )r'  r  r(  r  r   r  r)  r  r*  r  r,  r   r-  r  rz   r   )r   r   r'  r  r(  r  r   r  r)  r  r*  r  r,  r   rz   r   )r?   r-   rz   r   r   r   r?   r  r   r  r   r  r   r  r   r   r   r  r   r  r   r  r   r#  r   bool | UseClientDefaultr   r!  r   r"  rz   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"  rz   ztyping.Iterator[Response]
r   r   re   r  r   r#  r   r  rz   r   
r   r   r   r	   r   r  ra  list[Response]rz   r   r   r   r   r  ra  r  rz   r   r   r   rz   r   r?   r  r   r  r   r  r   r  r   r#  r   r  r   r!  r   r"  rz   r   r?   r  r   r  r   r  r   r  r   AuthTypes | UseClientDefaultr   r  r   r!  r   r"  rz   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"  rz   r   r|   )rd   r4   rz   r4   NNNr  ztype[BaseException] | Noner  zBaseException | Noner  zTracebackType | Nonerz   r{   )rM   rN   rO   rP   r   r   r   rh   r5  r7  rJ  r1   r   r   re   rW  rc  rk  rt  rF   r  r  r  r  r  r  rw   r  r  __classcell__r;  s   @rA   r3   r3   R  s?   *^ "&)-&*&*.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: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rC   c                  B    e Zd ZdZddddddddddedeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZdddddedf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d d	Zdddddef	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d!d
Z	d"dZ
dddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d#dZedddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d$d       Zdeed	 	 	 	 	 	 	 	 	 d%dZ	 	 	 	 	 	 	 	 	 	 d&dZ	 	 	 	 	 	 	 	 d'dZd(dZdddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d)dZdddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d*dZdddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d*dZdddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+dZdddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+dZdddddddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+dZdddeeedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d*dZd,dZd-dZ	 	 	 d.	 	 	 	 	 	 	 d/dZ xZS )0r2   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   r'  r(  r)  r*  r   r+  r   r   r,  r   r   r   r-  r   r   c                  t         |   |||||||||||       |r	 dd l}|xr |d u }| j	                  |	|      }| j                  |||||||      | _        |j                         D 	ci c]+  \  }}	t        |      |	d n| j                  |	||||||      - c}	}| _
        |
F| j                  j                  |
j                         D ci c]  \  }}t        |      | c}}       t        t        | j                  j                                     | _
        y # t        $ r t        d      d w xY wc c}	}w c c}}w r/  r1  )rd   r   r   r   r   r'  r(  r)  r*  r   r+  r   r   r,  r   r   r   r-  r   r   r3  r   r:  r   r;  s                           rA   rh   zAsyncClient.__init__I  s   . 	-'#- 	 	
  &;)t*;''/@A	.. / 
, (oo/E
 U sO} "++# , 
E
 LLBH,,.QYC)+Q F4<<#5#5#789K  !S &E
  Rr<  c                ,    ||S t        ||||||      S r>  r   r@  s           rA   r5  zAsyncClient._init_transport  s/      !
 	
rC   c           	     &    t        |||||||      S rB  r  rC  s           rA   r7  z!AsyncClient._init_proxy_transport  s&     "
 	
rC   c                    | j                   j                         D ]*  \  }}|j                  |      s|| j                  c S |c S  | j                  S rE  rF  rH  s       rA   rJ  zAsyncClient._transport_for_url  rK  rC   rL  c                  K   |	d}t        j                  |t        d       | j                  |||||||||	||      }| j	                  ||
|       d{   S 7 w)a  
        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
        NrN  rV   rO  rQ  rR  rS  rX  s                   rA   r   zAsyncClient.request  s     D C 
 MM'#5!D$$! % 
 YYwTDTYUUUUs   AAAAc                 K   | j                  |||||||||	||      }| j                  ||
|d       d{   }	 | |j                          d{    y7 #7 # |j                          d{  7   w xY wwr[  )r   rW  r   r\  s                   rA   re   zAsyncClient.stream  s     8 $$! % 
 -	 # 
 
	$N//###
 $(//###sD   5A=AA=A A=AA=A=A:3A64A::A=r]  c                 K   | j                   t        j                  k(  rt        d      t        j                  | _         t        |t              r| j                  n|}| j                  |       | j                  ||      }| j                  |||g        d{   }	 |s|j                          d{    |S 7 !7 # t        $ r }|j                          d{  7   |d}~ww xY ww)a  
        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   rU   rZ   rb  rY   r   rL   r   r  r   rc  areadre  r   rf  s          rA   rW  zAsyncClient.send:  s     * ;;+,,,VWW!(( *,<= !!! 	 	'"''611-	 2 
 
	nn&&&O
 '  	//###I	sT   BC+B;C+B? 4B=5B? :C+=B? ?	C(C#CC##C((C+c                >  K   |j                  |      }	 |j                          d {   }	 | j                  |||       d {   }	 	 |j                  |       d {   }t        |      |_        |j                          d {    |}|j                  |       s7 x7 ]7 D# t        $ r |cY |j                          d {  7   S w xY w7 H# t        $ r }|j                          d {  7   |d }~ww xY w# |j                          d {  7   w xY wwrh  )async_auth_flow	__anext__rk  asendStopAsyncIterationr   r   ra  r  rm  re  rn  s	            rA   rc  z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2C 3DC	DCC 	C<C7/C20C77C<<C? ?DDDDc                :  K   	 t        |      | j                  kD  rt        d|      | j                  d   D ]  } ||       d {     | j	                  |       d {   }	 | j                  d   D ]  } ||       d {     t        |      |_        |j                  s|S | j                  ||      }||gz   }|r|j                          d {    n	||_
        |S 	 7 7 7 f7 # t        $ r }|j                          d {  7   |d }~ww xY wwrr  )rs  r   r   r   rt  r   ra  ru  r   r  rp  re  r   rv  s          rA   rk  z$AsyncClient._send_handling_redirects  s8     7|d000&97  )))4 $7m##$ "66w??H --j9 )Dx.(() $(= 55#O66wI!XJ.#"..***,3H)#O +/  $? ) +
 ! oo'''	s   ADC'D!C)"D'C/ C+#C/ (D)-C/ C-C/ $D)D+C/ -C/ /	D8DDDDDc                  K   | j                  |j                        }t        j                         }t	        |j
                  t              st        d      t        |      5  |j                  |       d{   }ddd       t	        j
                  t              sJ ||_
        t        |j
                  ||      |_        | j                  j                  |       | j                  |_        t         j#                  d|j$                  |j                  |j&                  |j(                  |j*                         |S 7 # 1 sw Y   xY ww)ry  z?Attempted to send an sync request with an AsyncClient instance.r  Nrz  r{  )rJ  r?   rr   rs   r   re   r    rb  r   handle_async_requestr   r~   r   r}  r   r   r~  r  r   r  r   r  r  s        rA   rt  z AsyncClient._send_single_request  s     ++GKK8	!!#'../:Q  W- 	E&;;GDDH	E (//?;;"*OOhe
 	$$X.$($:$:!,NNKK!!  ""	
 ' E	E 	Es1   A!E#E8D?9E=CE?EE
Er  c               R   K   | j                  d||||||||	       d{   S 7 w)r  r   r  Nr  r  s	            rA   rF   zAsyncClient.get  sC     " \\-! " 

 

 
	
 

   '%'c               R   K   | j                  d||||||||	       d{   S 7 w)r  r  r  Nr  r  s	            rA   r  zAsyncClient.options  sC     " \\-! " 

 

 
	
 

r  c               R   K   | j                  d||||||||	       d{   S 7 w)r  r   r  Nr  r  s	            rA   r  zAsyncClient.head  sC     " \\-! " 

 

 
	
 

r  c               Z   K   | j                  d|||||||||	|
||       d{   S 7 w)r  r   rL  Nr  r  s                rA   r  zAsyncClient.post.  sO     * \\-! " 
 
 	
 
   "+)+c               Z   K   | j                  d|||||||||	|
||       d{   S 7 w)r  r  rL  Nr  r  s                rA   r  zAsyncClient.putS  sO     * \\-! " 
 
 	
 
r  c               Z   K   | j                  d|||||||||	|
||       d{   S 7 w)r  r  rL  Nr  r  s                rA   r  zAsyncClient.patchx  sO     * \\-! " 
 
 	
 
r  c               R   K   | j                  d||||||||	       d{   S 7 w)r  r  r  Nr  r  s	            rA   r  zAsyncClient.delete  sC     " \\-! " 

 

 
	
 

r  c                2  K   | j                   t        j                  k7  rrt        j                  | _         | j                  j	                          d{    | j
                  j                         D ]  }||j	                          d{     yy7 @7 
wr  )r   rU   rZ   r6  r   r8  r  )rd   r   s     rA   r   zAsyncClient.aclose  s~      ;;+,,,%,,DK//((***,,. )$,,.(()	 - + )s*   ABB#B7B
B	BBc                  K   | j                   t        j                  k7  r:t        j                  dt        j                  di| j                      }t        |      t        j                  | _         | j                  j                          d {    | j                  j                         D ]  }||j                          d {     | S 7 @7 
wr  )
r   rU   rX   rY   rZ   rb  r6  
__aenter__r8  r  )rd   r  r   s      rA   r  zAsyncClient.__aenter__  s     ;;+...""$S""O
 kkC s##!((oo((***\\((* 	)E &&(((	) 	 	+ )s*   B
CC#C1CC	CCc                  K   t         j                  | _        | j                  j	                  |||       d {    | j
                  j                         D ]   }||j	                  |||       d {    " y 7 B7 	wr^   )rU   rZ   r   r6  	__aexit__r8  r  )rd   r  r  r  r   s        rA   r  zAsyncClient.__aexit__  sx      "((oo'')YGGG\\((* 	FE ooh	9EEE	F 	H Fs'   6A?A;#A?A?3A=4A?=A?)(r   r  r   r  r   r  r   r  r'  r  r(  r  r)  r  r*  r  r   r  r+  z5None | typing.Mapping[str, AsyncBaseTransport | None]r   r,   r   r  r,  r   r   r  r   r  r   r  r-  AsyncBaseTransport | Noner   r  r   r  rz   r{   )r'  r  r(  r  r   r  r)  r  r*  r  r,  r   r-  r  rz   r   )r   r   r'  r  r(  r  r   r  r)  r  r*  r  r,  r   rz   r   )r?   r-   rz   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"  rz   ztyping.AsyncIterator[Response]r  r  r  r  r  r  r  r|   )rd   r6   rz   r6   r  r  )rM   rN   rO   rP   r   r   r   rh   r5  r7  rJ  r1   r   r   re   rW  rc  rk  rt  rF   r  r  r  r  r  r  r   r  r  r  r  s   @rA   r2   r2     s?   +` "&)-&*&*.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: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rC   )r?   r-   r@   r-   rz   r  )r?   r-   rz   z
int | None)r?   r-   rI   r-   rz   r  )\
__future__r   rt   enumloggingrr   typingrT  
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   EnumrU   r\   r~   CallableAny	EventHookr   r3   r2   )r   s   0rA   <module>r     s   "       :  $ 0 0  *  9 8   ? B    $ 7	
9 FNN3h'FNN3m,6 ( &'  
		7	#[M*
))+&++-CS
1BSC
$)) n .$ $. OOCO,	SW SWlFCZ FCRHF* HFE% Ds   =
F:F: