
    4P@it4                        d Z ddlZddlZddlm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!m"Z" dd	l#m$Z$ d
dl%m&Z&m'Z'  ejP                  dd      Z) ejP                  dd      Z*ejV                  ejX                  e-e-e-f   ejX                  e-e-ejV                  e.e/f   f   ejX                  e-e-de-f   f   Z0ejb                  dejd                  d   fd       Z3ej,                  eej                  eej(                  eej2                  eej                   eej                  eej                  eej&                  eej0                  eej$                  eej.                  eej"                  eej                  eej*                  eiZ4 G d de!      Z5 G d de'      Z6 G d de      Z7 G d de&      Z8y)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://": httpx.HTTPTransport(http2=True),
    "all://*example.org": httpx.HTTPTransport()
}

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

# Using advanced httpcore configuration, with unix domain sockets.
transport = httpx.HTTPTransport(uds="socket.uds")
client = httpx.Client(transport=transport)
    N)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VerifyTypes)URL   )AsyncBaseTransportBaseTransportTHTTPTransport)boundAAsyncHTTPTransportreturnc               #      K   	 d  y # t         $ rX} d }t        j                         D ]#  \  }}t        | |      s|t	        ||      s"|}% | t        |       } ||      | d } ~ ww xY wwN)	ExceptionHTTPCORE_EXC_MAPitems
isinstance
issubclassstr)exc
mapped_excfrom_excto_excmessages        c/home/www/lebenam.kofcorporation.com/venv/lib/python3.12/site-packages/httpx/_transports/default.pymap_httpcore_exceptionsr6   @   s     + +
 0 6 6 8 	$Hfc8, !Z
%C#
	$ c(!s*!+s*   A-	 A-	A*7A%
A%%A**A-c                   d    e Zd Zdej                  e   ddfdZdej                  e   fdZddZ	y)ResponseStreamhttpcore_streamr'   Nc                     || _         y r)   _httpcore_streamselfr9   s     r5   __init__zResponseStream.__init__j   
     /    c              #   v   K   t               5  | j                  D ]  }|  	 d d d        y # 1 sw Y   y xY wwr)   r6   r<   r>   parts     r5   __iter__zResponseStream.__iter__m   s:     $& 	-- 
	 	 	s   9-	969c                 f    t        | j                  d      r| j                  j                          y y )Nclose)hasattrr<   rH   r>   s    r5   rH   zResponseStream.closer   s)    4(('2!!'') 3rA   r'   N)
__name__
__module____qualname__typingIterablebytesr?   IteratorrF   rH    rA   r5   r8   r8   i   s8    0(> 04 0&//%0 
*rA   r8   c                      e Zd Zddddeddddddfdedej                  e   deded	e	d
edej                  e
   dej                  e   dej                  e   dedej                  ej                  e      ddfdZdedefdZ	 	 	 ddej                  ej$                  e      dej                  e   dej                  e   ddfdZdedefdZddZy)r#   TNFr   verifycerthttp1http2limits	trust_envproxyudslocal_addressretriessocket_optionsr'   c                    t        |||      }t        |t        t        f      rt	        |      n|}|Ct        j                  ||j                  |j                  |j                  ||||	|
|
      | _
        y |j                  j                  dv rt        j                  t        j                  |j                  j                  |j                  j                  |j                  j                   |j                  j"                        |j$                  |j&                  j(                  ||j*                  |j                  |j                  |j                  |||      | _
        y |j                  j                  dk(  r	 dd l}t        j0                  t        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)NrU   rV   rZ   url
ssl_contextmax_connectionsmax_keepalive_connectionskeepalive_expiryrW   rX   r\   r]   r^   r_   httphttpsschemehostporttarget)	proxy_url
proxy_authproxy_headersre   proxy_ssl_contextrf   rg   rh   rW   rX   r_   socks5r   {Using SOCKS proxy, but the 'socksio' package is not installed. Make sure to install httpx using `pip install httpx[socks]`.rq   rr   re   rf   rg   rh   rW   rX   zDProxy protocol must be either 'http', 'https', or 'socks5', but got .)r   r-   r/   r   r   httpcoreConnectionPoolrf   rg   rh   _poolrc   rm   	HTTPProxy
raw_schemeraw_hostro   raw_pathraw_authheadersrawre   socksioImportError
SOCKSProxy
ValueErrorr>   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   re   r   s                 r5   r?   zHTTPTransport.__init__x   s    )TYW$.usCj$A% u=!00' & 6 6*0*J*J!'!8!8+-DJ YY!22!++",, 99//++ 99--	 !>>#mm//'"'"3"3 & 6 6*0*J*J!'!8!8-!DJ$ YY) ",,",, 99//++ 99--	 !>>' & 6 6*0*J*J!'!8!8DJ  !II,,/q2 -  !S s   =I I,r>   c                 :    | j                   j                          | S r)   )r{   	__enter__rJ   s    r5   r   zHTTPTransport.__enter__   s    

rA   exc_type	exc_value	tracebackc                 |    t               5  | j                  j                  |||       d d d        y # 1 sw Y   y xY wr)   )r6   r{   __exit__r>   r   r   r   s       r5   r   zHTTPTransport.__exit__   s9     %& 	@JJ)Y?	@ 	@ 	@s   2;requestc           	         t        |j                  t              sJ t        j                  |j
                  t        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Nrl   )methodrc   r   content
extensions)status_coder   streamr   )r-   r   r   ry   r   r   r   rc   r}   r~   ro   r   r   r   r   r6   r{   handle_requestrO   rP   r   statusr8   r>   r   reqresps       r5   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{   rH   rJ   s    r5   rH   zHTTPTransport.close   s    

rA   NNNrK   )rL   rM   rN   r   r   rO   Optionalr   boolr   r   r/   intrP   SOCKET_OPTIONr?   r"   r   TypeBaseExceptionr   r   r   r   r   rH   rS   rA   r5   r#   r#   w   st    #+/'-1$(.2JNMM ooi(M 	M
 M M M z*M __S!M s+M M (FGM 
M^ a  AE4848	@//&++m"<=@ ??=1@ ??=1	@
 
@

 

<rA   c                   d    e Zd Zdej                  e   ddfdZdej                  e   fdZddZ	y)AsyncResponseStreamr9   r'   Nc                     || _         y r)   r;   r=   s     r5   r?   zAsyncResponseStream.__init__   r@   rA   c                   K   t               5  | j                  2 3 d {   }| 7 
6 	 d d d        y # 1 sw Y   y xY wwr)   rC   rD   s     r5   	__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)rI   r<   r   rJ   s    r5   r   zAsyncResponseStream.aclose   s6     4(((3''..000 40s   4?=?rK   )
rL   rM   rN   rO   AsyncIterablerQ   r?   AsyncIteratorr   r   rS   rA   r5   r   r      s<    0(<(<U(C 0 0!5!5e!< 
1rA   r   c                      e Zd Zddddeddddddfdedej                  e   deded	e	d
edej                  e
   dej                  e   dej                  e   dedej                  ej                  e      ddfdZdedefdZ	 	 	 ddej                  ej$                  e      dej                  e   dej                  e   ddfdZdedefdZddZy)r&   TNFr   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r'   c                    t        |||      }t        |t        t        f      rt	        |      n|}|Ct        j                  ||j                  |j                  |j                  ||||	|
|
      | _
        y |j                  j                  dv rt        j                  t        j                  |j                  j                  |j                  j                  |j                  j                   |j                  j"                        |j$                  |j&                  j(                  ||j                  |j                  |j                  |||
      | _
        y |j                  j                  dk(  r	 dd l}t        j.                  t        j                  |j                  j                  |j                  j                  |j                  j                   |j                  j"                        |j$                  ||j                  |j                  |j                  ||
      | _
        y t1        d      # t,        $ r t-        d	      d w xY w)Nra   rb   rd   ri   rl   )
rq   rr   rs   re   rf   rg   rh   rW   rX   r_   ru   r   rv   rw   zYProxy protocol must be either 'http', 'https', or 'socks5', but got {proxy.url.scheme!r}.)r   r-   r/   r   r   ry   AsyncConnectionPoolrf   rg   rh   r{   rc   rm   AsyncHTTPProxyr}   r~   ro   r   r   r   r   r   r   AsyncSOCKSProxyr   r   s                 r5   r?   zAsyncHTTPTransport.__init__  s    )TYW$.usCj$A% u=!55' & 6 6*0*J*J!'!8!8+-DJ YY!22!00",, 99//++ 99--	 !>>#mm//' & 6 6*0*J*J!'!8!8-DJ" YY) "11",, 99//++ 99--	 !>>' & 6 6*0*J*J!'!8!8DJ  1 -  !S s   2H3 3I	r>   c                 V   K   | j                   j                          d {    | S 7 wr)   )r{   
__aenter__rJ   s    r5   r   zAsyncHTTPTransport.__aenter__S  s&     jj##%%% 	&s   )')r   r   r   c                    K   t               5  | j                  j                  |||       d {    d d d        y 7 # 1 sw Y   y xY wwr)   )r6   r{   	__aexit__r   s       r5   r   zAsyncHTTPTransport.__aexit__W  sL      %& 	G**&&xIFFF	G 	GF	G 	Gs%   A
!><>	A
>AA
r   c           	        K   t        |j                  t              sJ t        j                  |j
                  t        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   )r-   r   r   ry   r   r   r   rc   r}   r~   ro   r   r   r   r   r6   r{   handle_async_requestrO   r   r   r   r   r   s       r5   r   z'AsyncHTTPTransport.handle_async_request`  s     '../:::>>{{--[[))[[%%{{++	 OO''NN))
 %& 	>88==D	> $++v';';<<<LL&t{{3	
 	
	 >	> 	>s1   CE<E0;E.<E0 A.E<.E00E95E<c                 T   K   | j                   j                          d {    y 7 wr)   )r{   r   rJ   s    r5   r   zAsyncHTTPTransport.aclose~  s     jj!!!s   (&(r   rK   )rL   rM   rN   r   r   rO   r   r   r   r   r   r/   r   rP   r   r?   r%   r   r   r   r   r   r   r   r   r   rS   rA   r5   r&   r&     st    #+/'-1$(.2JNLL ooi(L 	L
 L L L z*L __S!L s+L L (FGL 
L\q Q  AE4848	G//&++m"<=G ??=1G ??=1	G
 
G

 

<"rA   )9__doc__
contextlibrO   typesr   ry   _configr   r   r   r   _exceptionsr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   _modelsr   r   _typesr   r   r   r   r   _urlsr   baser    r!   TypeVarr"   r%   UnionTupler   rQ   	bytearrayr   contextmanagerrR   r6   r+   r8   r#   r   r&   rS   rA   r5   <module>r      s  2     G G     ( X X  3FNN3o.FNN323
LLc3
LLc6<<y(899:
LLc4$%' +!6 + +. /^+<+<<	  "5M!3  "5 $*^ *|M |~1/ 1{"+ {"rA   