
    osj"                    *   d dl mZ d dlZd dlZddlmZ ddlmZmZm	Z	 ddl
mZ ej                  rd dlZg dZ G d d	      Z e       Z	 	 	 d	 	 	 	 	 	 	 dd
Z G d d      Z G d d      Z G d d      Z ed      Z edd      ZdZdZdZdZdZy)    )annotationsN   )Headers)	CertTypesHeaderTypesTimeoutTypes)URL)LimitsProxyTimeoutcreate_ssl_contextc                      e Zd Zy)	UnsetTypeN)__name__
__module____qualname__     A/root/.hermes/venv/lib/python3.12/site-packages/httpx2/_config.pyr   r      s    r   r   c                z   dd l }dd l}dd l}| du r|rEt        j                  j                  d      r& |j                  t        j                  d         }n|rDt        j                  j                  d      r% |j                  t        j                  d         }n|j                  |j                        }n| du r5 |j                  |j                        }d|_	        |j                  |_        n|t        | t              rj|rt        d      d	}|j                  |t                t        j"                  j%                  |       r |j                  |       S  |j                  |       S | }|rJd
}|j                  |t                t        |t              r|j'                  |       |S  |j&                  |  |S )Nr   TSSL_CERT_FILE)cafileSSL_CERT_DIR)capathFz`verify=<str>` cannot be combined with `cert=...`. Build an `ssl.SSLContext` and pass it as `verify=<ctx>`, using `.load_cert_chain()` to configure the certificate chain.z`verify=<str>` is deprecated. Use `verify=ssl.create_default_context(cafile=...)` or `verify=ssl.create_default_context(capath=...)` instead.zz`cert=...` is deprecated. Use `verify=<ssl_context>` instead,with `.load_cert_chain()` to configure the certificate chain.)sslwarnings
truststoreosenvirongetcreate_default_context
SSLContextPROTOCOL_TLS_CLIENTcheck_hostname	CERT_NONEverify_mode
isinstancestr	TypeErrorwarnDeprecationWarningpathisdirload_cert_chain)verifycert	trust_envr   r   r   ctxmessages           r   r   r      s   
 ~8,#,,BJJ4OPC2::>>.9,#,,BJJ~4NOC ''(?(?@C	5cnnS445"--	FC	 Q J 	
 	g1277== -3--V<<)s))88L 	 	g12dC % J  C&Jr   c                      e Zd ZU dZded<   ded<   ded<   ded<   efeeeed	 	 	 	 	 	 	 	 	 	 	 ddZdd	Zdd
ZddZ	y)r   a  
    Timeout configuration.

    **Usage**:

    Timeout(None)               # No timeouts.
    Timeout(5.0)                # 5s timeout on all operations.
    Timeout(None, connect=5.0)  # 5s timeout on connect, no other timeouts.
    Timeout(5.0, connect=10.0)  # 10s timeout on connect. 5s timeout elsewhere.
    Timeout(5.0, pool=None)     # No timeout on acquiring connection from pool.
                                # 5s timeout elsewhere.
    float | Noneconnectreadwritepoolr6   r7   r8   r9   c               t   t        |t              rm|t        u sJ |t        u sJ |t        u sJ |t        u sJ |j                  | _        |j                  | _        |j
                  | _        |j                  | _        y t        |t              rO|d   | _        |d   | _        t        |      dk  rd n|d   | _        t        |      dk  rd | _        y |d   | _        y t        |t              sMt        |t              s=t        |t              s-t        |t              s|| _        || _        || _        || _        y t        |t              rt        d      t        |t              r|n|| _        t        |t              r|n|| _        t        |t              r|n|| _        t        |t              r|n|| _        y )Nr   r            zThttpx2.Timeout must either include a default, or set all four parameters explicitly.)r'   r   UNSETr6   r7   r8   r9   tuplelenr   
ValueError)selftimeoutr6   r7   r8   r9   s         r   __init__zTimeout.__init__a   sb    gw'e###5= =E>!>5= ="??DLDI DJDI'"1:DL
DI!$W!1wqzDJ #Gq 0DIgajDIw	*$	*%+$	*"DLDIDJDI'9- !wxx&0)&D7'DL#-dI#>DDI$.ui$@eDJ#-dI#>DDIr   c                `    | j                   | j                  | j                  | j                  dS )Nr:   r:   rC   s    r   as_dictzTimeout.as_dict   s(    ||IIZZII	
 	
r   c                   t        || j                        xrj | j                  |j                  k(  xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S N)r'   	__class__r6   r7   r8   r9   rC   others     r   __eq__zTimeout.__eq__   sm    udnn- (-(		UZZ'( 

ekk)( 		UZZ'	
r   c           
     8   | j                   j                  }t        | j                  | j                  | j
                  | j                  h      dk(  r| d| j                   dS | d| j                   d| j                   d| j
                   d| j                   d
S )Nr   z	(timeout=)z	(connect=z, read=z, write=z, pool=)rK   r   rA   r6   r7   r8   r9   rC   
class_names     r   __repr__zTimeout.__repr__   s    ^^,,
diiTYY?@AE \4<<.::Yt||nGDII;htzzlZabfbkbkallmnnr   N)rD   zTimeoutTypes | UnsetTyper6   None | float | UnsetTyper7   rT   r8   rT   r9   rT   returnNone)rU   zdict[str, float | None]rM   z
typing.AnyrU   boolrU   r(   )
r   r   r   __doc____annotations__r?   rE   rH   rN   rS   r   r   r   r   r   N   s     

 -2)I -2).*/).)I))I *	)I
 ')I ()I ')I 
)IV

or   r   c                  @    e Zd ZdZdddd	 	 	 	 	 	 	 ddZd	dZd
dZy)r
   a  
    Configuration for limits to various client behaviors.

    **Parameters:**

    * **max_connections** - The maximum number of concurrent connections that may be
            established.
    * **max_keepalive_connections** - Allow the connection pool to maintain
            keep-alive connections below this point. Should be less than or equal
            to `max_connections`.
    * **keepalive_expiry** - Time limit on idle keep-alive connections in seconds.
    N      @max_connectionsmax_keepalive_connectionskeepalive_expiryc               .    || _         || _        || _        y rJ   r^   )rC   r_   r`   ra   s       r   rE   zLimits.__init__   s      /)B& 0r   c                    t        || j                        xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S rJ   )r'   rK   r_   r`   ra   rL   s     r   rN   zLimits.__eq__   se    udnn- @$$(=(==@..%2Q2QQ@ %%)?)??		
r   c                    | j                   j                  }| d| j                   d| j                   d| j                   dS )Nz(max_connections=z, max_keepalive_connections=z, keepalive_expiry=rP   )rK   r   r_   r`   ra   rQ   s     r   rS   zLimits.__repr__   sT    ^^,,
l+D,@,@+A B))-)G)G(H I  $ 5 56a9	
r   )r_   
int | Noner`   re   ra   r5   rU   rV   rW   rY   )r   r   r   rZ   rE   rN   rS   r   r   r   r
   r
      sI      '+04),	1 $	1 $.		1
 '	1 
	1

r   r
   c                  J    e Zd Zdddd	 	 	 	 	 	 	 	 	 ddZedd       ZddZy)	r   N)ssl_contextauthheadersc               &   t        |      }t        |      }|j                  dvrt        d|      |j                  s|j
                  r+|j                  |j
                  f}|j                  d d       }|| _        || _        || _	        || _
        y )N)httphttpssocks5socks5hzUnknown scheme for proxy URL )usernamepassword)r	   r   schemerB   ro   rp   	copy_withurlrh   ri   rg   )rC   rs   rg   rh   ri   s        r   rE   zProxy.__init__   s     #h'"::CC<SGDEE<<3<<LL#,,/D---=C	&r   c                    | j                   d S | j                   d   j                  d      | j                   d   j                  d      fS )Nr   zutf-8r   )rh   encoderG   s    r   raw_authzProxy.raw_auth   sE     yy(tjtyy|/B/B7/KTYYWX\M`M`ahMi.jjr   c                    | j                   r| j                   d   dfnd }t        | j                        }|rd|nd}| j                  rdt	        | j                        nd}d| | | dS )Nr   z********z, auth= z
, headers=zProxy(rP   )rh   r(   rs   ri   dict)rC   rh   url_strauth_strheaders_strs        r   rS   zProxy.__repr__   ss    -1YY		!j)D ]%)-WTH%2=A\\
4#5"89ry
;-q99r   )
rs   z	URL | strrg   zssl.SSLContext | Nonerh   ztuple[str, str] | Noneri   zHeaderTypes | NonerU   rV   )rU   ztuple[bytes, bytes] | NonerY   )r   r   r   rE   propertyrv   rS   r   r   r   r   r      s]    
 .2'+&*'' +	'
 %' $' 
'0 k k:r   r   r]   )rD   d      )r_   r`   i   i   g      4@)TNT)r/   zssl.SSLContext | str | boolr0   zCertTypes | Noner1   rX   rU   zssl.SSLContext)
__future__r   r   typing_modelsr   _typesr   r   r   _urlsr	   TYPE_CHECKINGr   __all__r   r?   r   r   r
   r   DEFAULT_TIMEOUT_CONFIGDEFAULT_LIMITSDEFAULT_MAX_REDIRECTSDEFAULT_MAX_MESSAGE_SIZE_BYTESDEFAULT_QUEUE_SIZE'DEFAULT_KEEPALIVE_PING_INTERVAL_SECONDS&DEFAULT_KEEPALIVE_PING_TIMEOUT_SECONDSr   r   r   <module>r      s    " 	   8 8 	
>	 	 	 +/!4'4
4 4 	4nSo Sol'
 '
T&: &:R !- rJ !'  *. ')- &r   