
    osjY6                    *   U d Z ddlmZ ddlZddlZddlmZ ddlmZ ej                  rddl
Z
ddlZddlmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZ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) ddl*m+Z+m,Z,  ejZ                  dd      Z. ejZ                  dd      Z/e0e1e1e1f   e0e1e1e2e3z  f   z  e0e1e1de1f   z  Z4ddgZ5i a6de7d<   ddZ8ejr                  dd       Z: G d de'      Z; G d de,      Z< G d de$      Z= G d de+      Z>y)a  
Custom transports, with nicely configured defaults.

The following additional keyword arguments are currently supported by httpcore...

* uds: str
* local_address: str
* retries: int

Example usages...

# Disable HTTP/2 on a single specific domain.
mounts = {
    "all://": httpx2.HTTPTransport(http2=True),
    "all://*example.org": httpx2.HTTPTransport()
}

# Using advanced httpcore configuration, with connection retries.
transport = httpx2.HTTPTransport(retries=1)
client = httpx2.Client(transport=transport)

# Using advanced httpcore configuration, with unix domain sockets.
transport = httpx2.HTTPTransport(uds="socket.uds")
client = httpx2.Client(transport=transport)
    )annotationsN)	Generator)TracebackType   )DEFAULT_LIMITSLimitsProxycreate_ssl_context)ConnectErrorConnectTimeoutLocalProtocolErrorNetworkErrorPoolTimeoutProtocolError
ProxyError	ReadErrorReadTimeoutRemoteProtocolErrorTimeoutExceptionUnsupportedProtocol
WriteErrorWriteTimeout)RequestResponse)AsyncByteStream	CertTypes
ProxyTypesSyncByteStream)URL   )AsyncBaseTransportBaseTransportTHTTPTransport)boundAAsyncHTTPTransport-dict[type[Exception], type[httpx2.HTTPError]]HTTPCORE_EXC_MAPc                    dd l } | j                  t        | j                  t        | j                  t        | j                  t        | j
                  t
        | j                  t        | j                  t        | j                  t        | j                  t        | j                  t        | j                  t        | j                  t        | j                  t        | j                  t        iS Nr   )	httpcore2r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r,   s    M/root/.hermes/venv/lib/python3.12/site-packages/httpx2/_transports/default.py_load_httpcore_exceptionsr.   G   s     	""$4  .{{Yjj%%':$$&8%%':     c               #    K   t        t              dk(  r
t               a	 d  y # t        $ rX} d }t        j	                         D ]#  \  }}t        | |      s|t        ||      s"|}% | t        |       } ||      | d } ~ ww xY wwr+   )lenr)   r.   	Exceptionitems
isinstance
issubclassstr)exc
mapped_excfrom_excto_excmessages        r-   map_httpcore_exceptionsr<   \   s      !46+ +
 0 6 6 8 	$Hfc8, !Z
%C#
	$ c(!s*!+s*   B	% B		B7B&BBB	c                  $    e Zd ZddZddZddZy)ResponseStreamc                    || _         y N_httpcore_streamselfhttpcore_streams     r-   __init__zResponseStream.__init__w   
     /r/   c              #  v   K   t               5  | j                  E d {    d d d        y 7 # 1 sw Y   y xY wwr@   r<   rB   rD   s    r-   __iter__zResponseStream.__iter__z   s8     $& 	-,,,,	- 	-,	- 	-s    9-+-	9-69c                f    t        | j                  d      r| j                  j                          y y )Nclose)hasattrrB   rM   rJ   s    r-   rM   zResponseStream.close~   s)    4(('2!!'') 3r/   N)rE   ztyping.Iterable[bytes]returnNone)rO   ztyping.Iterator[bytes]rO   rP   )__name__
__module____qualname__rF   rK   rM    r/   r-   r>   r>   v   s    0-*r/   r>   c                      e Zd Zdddddedddddf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d
dZddZ	 	 	 d	 	 	 	 	 	 	 ddZ	 	 	 	 ddZdd	Zy)r$   TNFr   c                   dd l }t        |t        t        f      rt	        |      n|}t        |||      }|?|j                  ||j                  |j                  |j                  ||||	|
|
      | _
        y |j                  j                  dv r|j                  |j                  |j                  j                  |j                  j                  |j                  j                   |j                  j"                        |j$                  |j&                  j(                  ||j*                  |j                  |j                  |j                  |||      | _
        y |j                  j                  dv r	 dd l}|j1                  |j                  |j                  j                  |j                  j                  |j                  j                   |j                  j"                        |j$                  ||j                  |j                  |j                  ||
      | _
        y t3        d|j                  j                  d      # t.        $ r t/        d	      d w xY w)Nr   urlverifycert	trust_env
ssl_contextmax_connectionsmax_keepalive_connectionskeepalive_expiryhttp1http2udslocal_addressretriessocket_optionshttphttpsschemehostporttarget)	proxy_url
proxy_authproxy_headersr_   proxy_ssl_contextr`   ra   rb   rc   rd   rh   socks5socks5h{Using SOCKS proxy, but the 'socksio' package is not installed. Make sure to install httpx using `pip install httpx[socks]`.rq   rr   r_   r`   ra   rb   rc   rd   OProxy protocol must be either 'http', 'https', 'socks5', or 'socks5h', but got .)r,   r4   r6   r   r	   r
   ConnectionPoolr`   ra   rb   _poolrY   rm   	HTTPProxy
raw_schemeraw_hostro   raw_pathraw_authheadersrawr_   socksioImportError
SOCKSProxy
ValueErrorrD   r[   r\   r]   rc   rd   limitsproxyre   rf   rg   rh   r,   r_   r   s                  r-   rF   zHTTPTransport.__init__   s(    	$.usCj$A% u(TYW="11' & 6 6*0*J*J!'!8!8+- 2 DJ YY!22",,#-- 99//++ 99--	 (  !>>#mm//'"'"3"3 & 6 6*0*J*J!'!8!8-! - DJ$ YY!66 #--#-- 99//++ 99--	 (  !>>' & 6 6*0*J*J!'!8!8 . DJ  abgbkbkbrbrauuvw -  !S    4I Ic                :    | j                   j                          | S r@   )r}   	__enter__rJ   s    r-   r   zHTTPTransport.__enter__   s    

r/   c                |    t               5  | j                  j                  |||       d d d        y # 1 sw Y   y xY wr@   )r<   r}   __exit__rD   exc_type	exc_value	tracebacks       r-   r   zHTTPTransport.__exit__   s9     %& 	@JJ)Y?	@ 	@ 	@s   2;c           	        t        |j                  t              sJ dd l}|j	                  |j
                  |j                  |j                  j                  |j                  j                  |j                  j                  |j                  j                        |j                  j                  |j                  |j                        }t               5  | j                   j#                  |      }d d d        t        j                  t$        j&                        sJ t)        |j*                  |j                  t-        |j                        |j                        S # 1 sw Y   oxY wNr   rl   )methodrY   r   content
extensions)status_coder   streamr   )r4   r   r   r,   r   r   r   rY   r   r   ro   r   r   r   r   r<   r}   handle_requesttypingIterabler   statusr>   rD   requestr,   reqresps        r-   r   zHTTPTransport.handle_request   s    '...999>>{{--[[))[[%%{{++	   OO''NN))   
 %& 	2::,,S1D	2 $++v777LL!$++.	
 	
	2 	2s   E  E)c                8    | j                   j                          y r@   )r}   rM   rJ   s    r-   rM   zHTTPTransport.close   s    

r/   r[   zssl.SSLContext | str | boolr\   zCertTypes | Noner]   boolrc   r   rd   r   r   r   r   zProxyTypes | Nonere   
str | Nonerf   r   rg   intrh   z%typing.Iterable[SOCKET_OPTION] | NonerO   rP   )rD   r#   rO   r#   NNNr   ztype[BaseException] | Noner   zBaseException | Noner   zTracebackType | NonerO   rP   r   r   rO   r   rQ   )	rR   rS   rT   r   rF   r   r   r   rM   rU   r/   r-   r$   r$      s
    /3!%'#'$(@DN+N N 	N
 N N N !N N "N N >N 
N` 04*.*.	@,@ (@ (	@
 
@

 

>r/   c                  $    e Zd ZddZddZddZy)AsyncResponseStreamc                    || _         y r@   rA   rC   s     r-   rF   zAsyncResponseStream.__init__  rG   r/   c                  K   t               5  | j                  2 3 d {   }| 7 
6 	 d d d        y # 1 sw Y   y xY wwr@   rI   )rD   parts     r-   	__aiter__zAsyncResponseStream.__aiter__  sC     $& 	"33  d
3	 	 	s/   A6+)+6+6	A?Ac                   K   t        | j                  d      r#| j                  j                          d {    y y 7 w)Naclose)rN   rB   r   rJ   s    r-   r   zAsyncResponseStream.aclose  s6     4(((3''..000 40s   4?=?N)rE   ztyping.AsyncIterable[bytes]rO   rP   )rO   ztyping.AsyncIterator[bytes]rQ   )rR   rS   rT   rF   r   r   rU   r/   r-   r   r     s    0
1r/   r   c                      e Zd Zdddddedddddf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d
dZddZ	 	 	 d	 	 	 	 	 	 	 ddZ	 	 	 	 ddZdd	Zy)r'   TNFr   c                   dd l }t        |t        t        f      rt	        |      n|}t        |||      }|?|j                  ||j                  |j                  |j                  ||||	|
|
      | _
        y |j                  j                  dv r|j                  |j                  |j                  j                  |j                  j                  |j                  j                   |j                  j"                        |j$                  |j&                  j(                  |j*                  ||j                  |j                  |j                  |||      | _
        y |j                  j                  dv r	 dd l}|j1                  |j                  |j                  j                  |j                  j                  |j                  j                   |j                  j"                        |j$                  ||j                  |j                  |j                  ||
      | _
        y t3        d|j                  j                  d      # t.        $ r t/        d	      d w xY w)Nr   rX   rZ   r^   ri   rl   )rq   rr   rs   rt   r_   r`   ra   rb   rc   rd   rh   ru   rx   ry   rz   r{   )r,   r4   r6   r   r	   r
   AsyncConnectionPoolr`   ra   rb   r}   rY   rm   AsyncHTTPProxyr   r   ro   r   r   r   r   r_   r   r   AsyncSOCKSProxyr   r   s                  r-   rF   zAsyncHTTPTransport.__init__  s(    	$.usCj$A% u(TYW="66' & 6 6*0*J*J!'!8!8+- 7 DJ YY!22"11#-- 99//++ 99--	 (  !>>#mm//"'"3"3' & 6 6*0*J*J!'!8!8-! 2 DJ$ YY!66 #22#-- 99//++ 99--	 (  !>>' & 6 6*0*J*J!'!8!8 3 DJ  abgbkbkbrbrauuvw -  !S r   c                V   K   | j                   j                          d {    | S 7 wr@   )r}   
__aenter__rJ   s    r-   r   zAsyncHTTPTransport.__aenter__c  s&     jj##%%% 	&s   )')c                   K   t               5  | j                  j                  |||       d {    d d d        y 7 # 1 sw Y   y xY wwr@   )r<   r}   	__aexit__r   s       r-   r   zAsyncHTTPTransport.__aexit__g  sL      %& 	G**&&xIFFF	G 	GF	G 	Gs%   A
!><>	A
>AA
c           	       K   t        |j                  t              sJ dd l}|j	                  |j
                  |j                  |j                  j                  |j                  j                  |j                  j                  |j                  j                        |j                  j                  |j                  |j                        }t               5  | j                   j#                  |       d {   }d d d        t        j                  t$        j&                        sJ t)        |j*                  |j                  t-        |j                        |j                        S 7 r# 1 sw Y   qxY wwr   )r4   r   r   r,   r   r   r   rY   r   r   ro   r   r   r   r   r<   r}   handle_async_requestr   AsyncIterabler   r   r   r   s        r-   r   z'AsyncHTTPTransport.handle_async_requestp  s"     '../:::>>{{--[[))[[%%{{++	   OO''NN))   
 %& 	>88==D	> $++v';';<<<LL&t{{3	
 	
	 >	> 	>s1   CE8E,7E*8E,<A.E8*E,,E51E8c                T   K   | j                   j                          d {    y 7 wr@   )r}   r   rJ   s    r-   r   zAsyncHTTPTransport.aclose  s     jj!!!s   (&(r   )rD   r&   rO   r&   r   r   r   rQ   )	rR   rS   rT   r   rF   r   r   r   r   rU   r/   r-   r'   r'     s
    /3!%'#'$(@DN+N N 	N
 N N N !N N "N N >N 
N` 04*.*.	G,G (G (	G
 
G

 

>"r/   )rO   r(   )rO   zGenerator[None])?__doc__
__future__r   
contextlibr   collections.abcr   typesr   TYPE_CHECKINGsslhttpx2_configr   r   r	   r
   _exceptionsr   r   r   r   r   r   r   r   r   r   r   r   r   r   _modelsr   r   _typesr   r   r   r   _urlsr   baser!   r"   TypeVarr#   r&   tupler   bytes	bytearraySOCKET_OPTION__all__r)   __annotations__r.   contextmanagerr<   r>   r$   r   r'   rU   r/   r-   <module>r      s"  4 #   % 	 G G     ( K K  3FNN3o.FNN323c3m$uS#uy7H-H'IIERUWZ\`beReLff
1BD ? D* + +2
*^ 
*~M ~B1/ 1~"+ ~"r/   