o
    .jL                     @  sv  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mZ d dl	m
Z
 d dlmZ ddlmZ ejr;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 ddlmZ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)m*Z* ddl+m,Z, ddl-m.Z. zddl/m0Z0 W n e1y   dZ0ej2dkre3de4 Y nw ddl5m6Z6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZFmGZG ddlHmIZImJZJ ddlmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z] ddl^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZj ej2dkr.ejkZlnejZlG dd deFZmdS )     )annotationsN)OrderedDict)	timedelta)urlparse   )codes)Literal)HAS_LEGACY_URLLIB3iscoroutinefunctionurllib3_ensure_type)DEFAULT_POOLSIZEDEFAULT_RETRIESREAD_DEFAULT_TIMEOUTWRITE_DEFAULT_TIMEOUT)AsyncBaseAdapterAsyncHTTPAdapter)RequestsCookieJarcoerce_to_requests_cookiejarextract_cookies_to_jarmerge_cookies)ChunkedEncodingErrorContentDecodingErrorInvalidSchemaTooManyRedirects)DEFAULT_STRATEGYRevocationConfiguration)AsyncServerGatewayInterface)AsyncUnixAdapter)AsyncPyodideAdapter
emscriptenzUunable to load native WASM adapter for AsyncSession. HTTP requests may fail in async.)async_dispatch_hookdefault_hooks)DEFAULT_REDIRECT_LIMITAsyncResponsePreparedRequestRequestResponseTransferProgress)ConnectionInfo)AsyncBaseResolver)load_extension)Sessionmerge_hooks)AsyncQuicSharedCacheCaseInsensitiveDict)ASGIAppAsyncBodyTypeAsyncHookTypeAsyncHttpAuthenticationTypeAsyncResolverTypeBodyTypeCacheLayerAltSvcTypeCookiesTypeHeadersTypeHttpAuthenticationTypeHttpMethodTypeMultiPartFilesAltTypeMultiPartFilesType	ProxyTypeQueryParameterType	RetryTypeTimeoutTypeTLSClientCertTypeTLSVerifyType)_deepcopy_ci_swap_contextarewind_bodycreate_async_resolverdefault_headersparse_schemerequote_uriresolve_proxiesrewind_bodyshould_check_crlshould_check_ocspurljoin_safewin32c                      s  e Zd ZdZdddeddddddeeddddddddedddddddddd8d9Zdd<d=Zdd?d@Z	ddAdBZ
ddDdEZdFdG Zd fdKdLZddNdOZejddWdXZejddZdXZdd\dXZ							dddedfZej	g	g	g	g	g	g	g	g	g	g	g	g	g	g	gdddtduZej	g	g	g	g	g	g	g	g	g	g	g	g	g	g	gdddvduZ															dddxduZejdgdgdgdgdgdgdgdgdgdgdgdyddzd{Zejdgdgdgdgdgdgdgdgdgdgdgdydd|d{Zddddddddddddydd}d{ZejdgdgdgdgdgdgdgdgdgdgdgdydddZejdgdgdgdgdgdgdgdgdgdgd
dddZddddddddddddydddZejdgdgdgdgdgdgdgdgdgdgdgdydddZejdgdgdgdgdgdgdgdgdgdgd
dddZddddddddddddydddZej	g	gddgdgdgdgdgdgdgdgdgdgdgdgddddZej	g	gddgdgdgdgdgdgdgdgdgdgdgddddZ		dddddddddddddddddZej	gddgdgdgdgdgdgdgdgdgdgdgdgdgddddZej	gddgdgdgdgdgdgdgdgdgdgdgdgddddZ	ddddddddddddddddddZej	gddgdgdgdgdgdgdgdgdgdgdgdgdgddddZej	gddgdgdgdgdgdgdgdgdgdgdgdgddddZ	ddddddddddddddddddZejdgdgdgdgdgdgdgdgdgdgdgdydddZejdgdgdgdgdgdgdgdgdgdgd
dddZddddddddddddydddZdddddZdddZ  ZS )AsyncSessiona  A Requests asynchronous session.

    Provides cookie persistence, connection-pooling, and configuration.

    Basic Usage::

      >>> import niquests
      >>> s = niquests.AsyncSession()
      >>> await s.get('https://httpbin.org/get')
      <Response HTTP/2 [200]>

    Or as a context manager::

      >>> async with niquests.AsyncSession() as s:
      ...     await s.get('https://httpbin.org/get')
      <Response HTTP/2 [200]>
    NFg     @g      N@T)resolversource_addressquic_cache_layerretriesmultiplexeddisable_http1disable_http2disable_http3disable_ipv6disable_ipv4pool_connectionspool_maxsizehappy_eyeballskeepalive_delaykeepalive_idle_windowbase_urltimeoutheadersauthhooksrevocation_configurationappparamscookiesproxiesverifycertallow_incoming_cookiesrP   AsyncResolverType | NonerQ   tuple[str, int] | NonerR   CacheLayerAltSvcType | NonerS   r>   rT   boolrU   rV   rW   rX   rY   rZ   intr[   r\   
bool | intr]   float | int | Noner^   r_   
str | Noner`   TimeoutType | Nonera   HeadersType | Nonerb   ;HttpAuthenticationType | AsyncHttpAuthenticationType | Nonerc   @AsyncHookType[PreparedRequest | Response | AsyncResponse] | Nonerd   RevocationConfiguration | Nonere   ASGIApp | Nonerf   QueryParameterType | Nonerg   CookiesType | Nonerh   ProxyType | Noneri   TLSVerifyType | Nonerj   TLSClientCertType | Nonerk   c          !      C  s  |
|	g ddkrtd|| _| jr*tr*t| jdr*dtt| jvr*t| j| _|d ur2t|nt	 | _
|| _|d ur?|ni | _|d urLtt |nt | _|d urV|ni | _d| _|| _t|| _|| jk| _|| _|| _|| _|| _|| _|
| _|	| _|| _|| _|| _|| _ || _!|d ur|nd| _"|| _#t$| _%d| _&|| _'t(|dd| _)|| _*|d ur|nt+dd	| _,d | _-d | _.|| _/t0 | _1t2d u r4| 3d
t4d%i d| j,d|d|d|d|d|d|d|
d|	d|d|d|d|d|d|d| | 3dt4|||||||
|	|||||||d | 3dt5|||||||
|	|||||||d nt2|d}dD ]}| 3| d | q;|d urst6||d!}| 3d"| d#D ]} | 3|  d$| q[| j'd u rud"| _'d S d S d S )&NT   z!Cannot disable both IPv4 and IPv6totalurllib3_futureF)thread_freei 0  )max_sizehttps://rR   max_retriesrU   rV   rW   rP   rQ   rY   rX   rZ   r[   r\   r]   r^   rd   rk   http://r   rU   rV   rW   rP   rQ   rY   rX   rZ   r[   r\   r]   r^   rd   rk   http+unix://)r   )httphttpsssepssewswssz://)re   r   zasgi://default)r   r   r   r   z
://default )7countRuntimeErrorrS   r	   hasattrstrtyper   r.   rF   ra   rb   rh   r,   r!   rc   rf   streamrT   rE   rP   _own_resolverr`   rQ   _disable_http1_disable_http2_disable_http3_disable_ipv4_disable_ipv6_pool_connections_pool_maxsize_happy_eyeballs_keepalive_delay_keepalive_idle_windowri   rj   r"   max_redirects	trust_envr_   r   rg   rk   r-   rR   _ocsp_cache
_crl_cache_revocation_configurationr   adaptersr   mountr   r   r   )!selfrP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   wasm_adaptersupported_schemeadapter_schemer   r   K/home/thesage/.local/lib/python3.10/site-packages/niquests/async_session.py__init__~   s   
	


	


zAsyncSession.__init__returnr   c                 C  s"   dt | jddd d  dS )Nz<AsyncSession zOrderedDict( >)reprr   replacer   r   r   r   __repr__p  s   "zAsyncSession.__repr__typing.NoReturnc                 C  s   t d)NzOYou probably meant "async with". Did you forget to prepend the "async" keyword?)SyntaxErrorr   r   r   r   	__enter__s  s   zAsyncSession.__enter__c                   s   | S Nr   r   r   r   r   
__aenter__v     zAsyncSession.__aenter__Nonec                   s   |   I d H  d S r   )close)r   excvaluetbr   r   r   	__aexit__y  s   zAsyncSession.__aexit__c                 C  s  |  D ]
\}}t| || qtd | _d| _t | _| dtdi d| j	d| j
d| jd| jd| jd| jd	| jd
| jd| jd| jd| jd| jd| jd| jd| jd| j | dt| j
| j| j| j| j| j| j| j| j| j| j| j| j| j| jd | dt| j
| j| j| j| j| j| j| j| j| j| j| j| j| j| jd | j D ]}t|dr| j|_t|dr| j|_qd S )NTr   rR   r   rU   rV   rW   rQ   rY   rX   rP   rZ   r[   r\   r]   r^   rd   rk   r   )r   rU   rV   rW   rQ   rY   rX   rP   rZ   r[   r\   r]   r^   rd   rk   r   r   r   r   )itemssetattrrE   rP   r   r   r   r   r   rR   rS   r   r   r   rQ   r   r   r   r   r   r   r   r   rk   r   valuesr   r   r   )r   stateattrr   r   r   r   r   __setstate__|  s   
	


zAsyncSession.__setstate__prefixr   r   c                   s   t  || d S r   )superr   )r   r   r   	__class__r   r   r     s   zAsyncSession.mounturlc                 C  s   | j  D ]\}}| | r|  S qt|}d|v r+t|jddd\}}nd }z&t||d}| j  D ]\}}|| v rQ|	|t|krQ|  W S q9W n	 t
y\   Y nw |dsg|drjd}nd}td	|| )
N+r   )maxsplit)implementationzws://zwss://z_ Did you forget to install the extra for WebSocket? Run `pip install niquests[ws]` to fix this.r   z&No connection adapters were found for )r   r   lower
startswithrG   tuplesplitr*   supported_schemesscheme_to_http_schemeImportErrorr   )r   r   r   r   schemer   	extensionadditional_hintr   r   r   get_adapter  s,   
zAsyncSession.get_adapterrequestr$   r   Literal[True]kwargs
typing.Anyr#   c                     d S r   r   )r   r   r   r   r   r   r   send  r   zAsyncSession.sendr&   c                   r   r   r   )r   r   r   r   r   r   r     r   Response | AsyncResponsec                   s  t tr
tddj dj dj dvr-tjj	d< dv rPd rPt
rPtd drPdttd vrPtd d< d	d
}d}j td I dH dC fdd}dD fdd}dE fdd}d | d!| d"j d#| jdusJ j sVjstd$t  I dH  j _d%tdFi d&jd'j d(j!d)j"d*j#d+jd,j$d-j%d.j&d/j'd0j(d1j)d2j*d3j+d4j,d5j- d6tj j!j"j#jj$j%j&j'j(j)j*j+j,j-d7 d8t.j j!j"j#jj$j%j&j'j(j)j*j+j,j-d7 j/jd9}t0 }	|j1fi I dH }
t2j3_3t|
d:r|
j4d
u rfd;d<}||
_5dd < |
j67||	 j8|d=j9d> |st:|
 |
S t0 |	 }t;|d?|
_<td@ |
fi I dH }
j-r|
j=r|
j=D ]}t>j8|j?|j@ qt>j8|
j@ |r
jA|
fdAd
i}g }|2 z3 dH W }t |tBr|C| q|q6 ng }|r,|Dd=|
 | }
|D ]}t |tEr't:| q||
_=|sf|
jFrfjA|
fdBd
i}zz
|G I dH |
_HW n
 tIyT   Y nw W |J I dH  n|J I dH  w |st |
tEr|
jKdu r{|
jLI dH  t:|
 |
S |
jKdu r|
jL |
S )GzSend a given PreparedRequest.z#You can only send PreparedRequests.r   ri   rj   rh   r`   r   r   allow_redirectsTpre_requestN	conn_infor(   r   r   c              	     s  | _ jrÈjdrÈd rtjdddk}|s%jdur%jj}t| jrtzddl	m
} ddl	m} W n	 tyB   Y n2w jdu r]| _j D ]}t|d	r\j|_qQ|||sdd
ndd jjjdI dH  t| jrzddlm} ddlm} W n	 ty   Y n2w jdu r| _j D ]}t|drj|_q|||sd
ndd jjjdI dH  krtd I dH  dS dS )zVThis function will be called by urllib3.future just after establishing the connection.r   ri   NIQUESTS_STRICT_OCSP0Nr   )InMemoryRevocationStatus)ri   r   g?g      ?rh   )rP   r\   cache)InMemoryRevocationListr   pre_send)r   r   r   osenvirongetr   strict_moderL   "extensions.revocation._ocsp._asyncr   ri   r   r   r   r   r   rP   r   rK   !extensions.revocation._crl._asyncr   r   r    )r   strict_ocsp_enabledr   ocsp_verifyr   r   
crl_verifyrc   r   ptr_requestr   r   r   r   on_post_connection  sj   






z-AsyncSession.send.<locals>.on_post_connection
total_sentrp   content_length
int | Noneis_completedro   	any_errorc                   sV   krd S j d u rt _ | j _|j _|j _|j _td I d H  d S )N	on_upload)upload_progressr'   r   r   r   r   r    )r   r   r   r   )rc   r   r   r   r   r   handle_upload_progressd  s   
z1AsyncSession.send.<locals>.handle_upload_progressearly_responser&   c                   s   t d | I d H  d S )Nr   )r    )r   )rc   r   r   on_early_responsew  s   z,AsyncSession.send.<locals>.on_early_responser   on_upload_bodyrT   r  zA externally instantiated resolver was closed. Attempt to recycling it internally, the Session will detach itself from given resolver.r   rR   r   rU   rV   rW   rP   rQ   rY   rX   rZ   r[   r\   r]   r^   rd   rk   r   r   r   )r   lazyc                   sr   j | |fddi }z#z| I d H W W | I d H  S  ty0   Y W | I d H  d S w | I d H  w )Nyield_requestsT)resolve_redirects	__anext__acloseStopAsyncIteration)xy	aiter_gen)r   r   r   r   _redirect_method_ref  s   z/AsyncSession.send.<locals>._redirect_method_refr   )niquests_is_streamniquests_startniquests_hooksniquests_cookiesniquests_allow_redirectniquests_kwargsniquests_redirect_countniquests_max_redirects)secondsresponseyield_requests_trailr  )r   r(   r   r   )
r   rp   r   r   r   ro   r   ro   r   r   )r   r&   r   r   r   )M
isinstancer%   
ValueError
setdefaultr   ri   rj   rI   rh   r   r	   r   r   r   r   popr   rc   r    rT   r   rP   is_availabler   warningswarnResourceWarningr   recycler   r   rR   rS   r   r   r   rQ   r   r   r   r   r   r   r   r   rk   r   r   preferred_clockr   rB   r   r  _resolve_redirect_promiseupdate_parametersrg   r   rC   r   elapsedhistoryr   r   rawr  r&   appendinsertr#   is_redirectr  _nextr  r  r   content)r   r   r   r   r   r   r   r  r   startrr  r%  respgenr&  resp_or_reqhrr   r   r   r     sr  


G	
	


 r/  reqint | float | NonerA   r  r  adapter_kwargs<typing.AsyncGenerator[AsyncResponse | PreparedRequest, None]c
              
   K s  g }|  |}t|jj}|r| }|| |dd |_|jdus(J zt|t	r5|j
I dH  n|j
 W n tttfyO   |jjddI dH  Y nw t|j| jkrctd| j d|dt|t	rp| I dH  n|  |dr|jdusJ t|j}t|tr| }d	||g}t|}|jd
kr|r|jt|tr|n|dd}n|jr|j}| }|jst|jt|}t|tsJ dt| dnt|}t|tr|d}||_|jdusJ |  || |j!t"j#t"j$fvrd}|D ]
}|j%|d qd|_&|j}|%dd |j'dus!J | j(r-t)|j'||j t*|j'| j+ |,|j' | -||}| .|| |j/duoTd|v pTd|v }|rx|j&durtt0|j&drtt1|j&j2rtt3|I dH  nt4| |}|r|V  n?|	r|V  | j5|f|||||dd|
I dH }t0|dr|j6r| 7|I dH  | j(rt)| j+||j |  |}|V  |sdS dS )zBReceives a Response. Returns a generator of Responses or Requests.r   NF)decode_contentz	Exceeded z redirects.)r  z//:r   zutf-8)fragmentzurljoin produced z instead of str)Content-LengthzContent-TypeTransfer-EncodingCookier:  r;  tell)r   r`   ri   rj   rh   r   r  )8get_redirect_targetr   r   r9  copyr(  r&  r'  r  r#   r,  r   r   r   readlenr   r   r   r   rG   bytesdecodejoin_replacer   geturlnetlocrM   rH   r   ra   rebuild_methodstatus_coder   temporary_redirectpermanent_redirectr  body_cookiesrk   r   r   rg   prepare_cookiesrebuild_proxiesrebuild_auth_body_positionr   r
   r=  rD   rJ   r   r  gather)r   r/  r3  r   r`   ri   rj   rh   r  r  r5  histr   previous_fragmentprepared_requesttarget_schemeparsedpurged_headersheaderra   
rewindabler   r   r   r  <  s   






 




 zAsyncSession.resolve_redirects.methodr9   dataBodyType | AsyncBodyType | Nonefiles1MultiPartFilesType | MultiPartFilesAltType | Noner   0AsyncHookType[PreparedRequest | Response] | NoneLiteral[False] | Nonejsontyping.Any | Noneoverride_schemec                   r   r   r   r   r[  r   rf   r\  ra   rg   r^  rb   r`   r   rh   rc   r   ri   rj   rb  rd  r   r   r   r        zAsyncSession.requestc                   r   r   r   re  r   r   r   r     rf  bool | Nonec                   sR  |  du r| }t|||||pi ||pi |||| j|d}| |}|jr?||I d H }|j|j |	|j
 |`t|jtrk|j
d urkt|j
drkt|j
jrkz|j
 I d H |_W n	 tyj   Y nw |jd usrJ |pui }| |j||||}|	p| j|
d}|| |d d u r|dv rtnt|d< | j|fi |I d H S )NF)r[  r   ra   r^  r\  rb  rf   rb   rg   rc   r_   rd  r=  )r`   r   r`   >   PUTPOSTPATCHDELETE)isupperupperr%   r_   prepare_request_asynchronous_auth_pending_async_auth__dict__updateprepare_content_lengthrL  r  rQ  objectr   r
   r=  OSErrorr   merge_environment_settingsr`   r   r   r   )r   r[  r   rf   r\  ra   rg   r^  rb   r`   r   rh   rc   r   ri   rj   rb  rd  r3  prepr.  settingssend_kwargsr   r   r   r   
  s\   





rf   ra   rg   rb   r`   r   rh   rc   ri   r   rj   c                  r   r   r   r   r   rf   ra   rg   rb   r`   r   rh   rc   ri   r   rj   r   r   r   r   r   Y     zAsyncSession.getc                  r   r   r   r{  r   r   r   r   l  r|  c                  4   | j d|f||||||||	|
||d|I d H S )NGETrz  r   r{  r   r   r   r     &   Literal[False] | Literal[None]c                  r   r   r   r{  r   r   r   options  r|  zAsyncSession.options)
rf   ra   rg   rb   r`   r   rh   rc   ri   rj   c                  r   r   r   r{  r   r   r   r    r|  c                  r}  )NOPTIONSrz  r  r{  r   r   r   r    r  c                  r   r   r   r{  r   r   r   head  r|  zAsyncSession.headc                  r   r   r   r{  r   r   r   r    r|  c                  r}  )NHEADrz  r  r{  r   r   r   r    r  )rf   ra   rg   r^  rb   r`   r   rh   rc   ri   r   rj   c                  r   r   r   r   r   r\  rb  rf   ra   rg   r^  rb   r`   r   rh   rc   ri   r   rj   r   r   r   post1     zAsyncSession.post)rf   ra   rg   r^  rb   r`   r   rh   rc   ri   rj   c                  r   r   r   r  r   r   r   r  F  r  c                  2   | j d|||||||||	|
|||||dI d H S )Nri  r\  rb  rf   ra   rg   r^  rb   r`   r   rh   rc   ri   r   rj   r  r  r   r   r   r  [  &   )rb  rf   ra   rg   r^  rb   r`   r   rh   rc   ri   r   rj   c                  r   r   r   r  r   r   r   put  r  zAsyncSession.put)rb  rf   ra   rg   r^  rb   r`   r   rh   rc   ri   rj   c                  r   r   r   r  r   r   r   r    r  c                  r  )Nrh  r  r  r  r   r   r   r    r  c                  r   r   r   r  r   r   r   patch  r  zAsyncSession.patchc                  r   r   r   r  r   r   r   r    r  c                  r  )Nrj  r  r  r  r   r   r   r    r  c                  r   r   r   r{  r   r   r   delete!  r|  zAsyncSession.deletec                  r   r   r   r{  r   r   r   r  4  r|  c                  r}  )Nrk  rz  r  r{  r   r   r   r  G  r  )	max_fetch	responsesr  r   c                  s:   | j du rd S | j D ]}|j|d|iI d H  qd S )NFr  )rT   r   r   rR  )r   r  r  r   r   r   r   rR  i  s   
zAsyncSession.gatherc                   s>   | j  D ]	}| I d H  q| jr| j I d H  d S d S r   )r   r   r   r   rP   )r   vr   r   r   r   p  s   zAsyncSession.close)8rP   rl   rQ   rm   rR   rn   rS   r>   rT   ro   rU   ro   rV   ro   rW   ro   rX   ro   rY   ro   rZ   rp   r[   rp   r\   rq   r]   rr   r^   rr   r_   rs   r`   rt   ra   ru   rb   rv   rc   rw   rd   rx   re   ry   rf   rz   rg   r{   rh   r|   ri   r}   rj   r~   rk   ro   )r   r   )r   r   )r   rO   )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   )FNTNNFF)r/  r#   r3  r$   r   ro   r`   r4  ri   rA   rj   r~   rh   r|   r  ro   r  ro   r5  r   r   r6  )...............)$r[  r9   r   r   rf   rz   r\  r]  ra   ru   rg   r{   r^  r_  rb   rv   r`   rt   r   ro   rh   r|   rc   r`  r   ra  ri   r}   rj   r~   rb  rc  rd  rs   r   r&   )$r[  r9   r   r   rf   rz   r\  r]  ra   ru   rg   r{   r^  r_  rb   rv   r`   rt   r   ro   rh   r|   rc   r`  r   r   ri   r}   rj   r~   rb  rc  rd  rs   r   r#   )NNNNNNNTNNNNNNN)$r[  r9   r   r   rf   rz   r\  r]  ra   ru   rg   r{   r^  r_  rb   rv   r`   rt   r   ro   rh   r|   rc   r`  r   rg  ri   r}   rj   r~   rb  rc  rd  rs   r   r   )r   r   rf   rz   ra   ru   rg   r{   rb   rv   r`   rt   r   ro   rh   r|   rc   r`  ri   r}   r   ra  rj   r~   r   r   r   r&   )r   r   rf   rz   ra   ru   rg   r{   rb   rv   r`   rt   r   ro   rh   r|   rc   r`  ri   r}   r   r   rj   r~   r   r   r   r#   )r   r   rf   rz   ra   ru   rg   r{   rb   rv   r`   rt   r   ro   rh   r|   rc   r`  ri   r}   r   rg  rj   r~   r   r   r   r   )r   r   rf   rz   ra   ru   rg   r{   rb   rv   r`   rt   r   ro   rh   r|   rc   r`  ri   r}   r   r  rj   r~   r   r   r   r&   )..) r   r   r\  r]  rb  rc  rf   rz   ra   ru   rg   r{   r^  r_  rb   rv   r`   rt   r   ro   rh   r|   rc   r`  ri   r}   r   r  rj   r~   r   r&   ) r   r   r\  r]  rb  rc  rf   rz   ra   ru   rg   r{   r^  r_  rb   rv   r`   rt   r   ro   rh   r|   rc   r`  ri   r}   r   r   rj   r~   r   r#   )NN) r   r   r\  r]  rb  rc  rf   rz   ra   ru   rg   r{   r^  r_  rb   rv   r`   rt   r   ro   rh   r|   rc   r`  ri   r}   r   rg  rj   r~   r   r   ).r   )r  r&   r  r   r   r   )__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   r   r   r   typingoverloadr   r  r   r   r  r  r  r  r  r  rR  r   __classcell__r   r   r   r   rO   k   s&    
s


K
 
  R #O"""&&&"rO   )n
__future__r   r   systimer  r  collectionsr   datetimer   urllib.parser   status_codesr   TYPE_CHECKINGtyping_extensionsr   _compatr	   r
   r   	_constantr   r   r   r   r   r   r   rg   r   r   r   r   
exceptionsr   r   r   r   extensions.revocationr   r   extensions.sgi._asyncr   extensions.unixsocket._asyncr   extensions.pyodide._asyncr   r   platformr  UserWarningrc   r    r!   modelsr"   r#   r$   r%   r&   r'   packages.urllib3r(   (packages.urllib3.contrib.resolver._asyncr)   -packages.urllib3.contrib.webextensions._asyncr*   sessionsr+   r,   
structuresr-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   utilsrB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   perf_counterr!  rO   r   r   r   r   <module>   sX    
 T8