
    |Ig!                       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y)    )annotationsN   )Headers)	CertTypesHeaderTypesTimeoutTypes)URL)LimitsProxyTimeoutcreate_ssl_contextc                      e Zd Zy)	UnsetTypeN)__name__
__module____qualname__     J/var/www/html/answerous/venv/lib/python3.12/site-packages/httpx/_config.pyr   r      s    r   r   c                n   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 r6 |j                  |j                        }d|_
        |j                  |_        |S t        | t              r]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>` 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certifiosenvirongetcreate_default_contextwhere
SSLContextPROTOCOL_TLS_CLIENTcheck_hostname	CERT_NONEverify_mode
isinstancestrwarnDeprecationWarningpathisdirload_cert_chain)	verifycert	trust_envr   r   r   ctxssl_contextmessages	            r   r   r      su   
 ~8,#,,BJJ4OPC2::>>.9,#,,BJJ~4NOC -#,,GMMODC	5$cnnS%<%<=%*""%--	FC	 J 	
 	g1277== -3--V<<)s))88L 	 	g12dC % J  C&Jr   c                  V    e Zd ZdZ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.
    connectreadwritepoolc               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            zShttpx.Timeout must either include a default, or set all four parameters explicitly.)r(   r   UNSETr7   r8   r9   r:   tuplelenr   
ValueError)selftimeoutr7   r8   r9   r:   s         r   __init__zTimeout.__init__W   sj    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- 2  '1)&D7'DL#-dI#>DDI$.ui$@eDJ#-dI#>DDIr   c                `    | j                   | j                  | j                  | j                  dS )Nr6   r6   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__r7   r8   r9   r:   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   r7   r8   r9   r:   rC   
class_names     r   __repr__zTimeout.__repr__   s    ^^,,
diiTYY?@AE \4<<.::l)DLL> 2II;htzzl'$))AG	
r   N)rD   zTimeoutTypes | UnsetTyper7   None | float | UnsetTyper8   rT   r9   rT   r:   rT   returnNone)rU   zdict[str, float | None]rM   z
typing.AnyrU   boolrU   r)   )	r   r   r   __doc__r?   rE   rH   rN   rS   r   r   r   r   r   I   sv     -2,I -2).*/).,I),I *	,I
 ',I (,I ',I 
,I\


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_   r`   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_   r`   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_   r`   rQ   s     r   rS   zLimits.__repr__   sT    ^^,,
l+D,@,@+A B))-)G)G(H I  $ 5 56a9	
r   )r^   
int | Noner_   rd   r`   zfloat | NonerU   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)r3   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   rm   rn   	copy_withurlrf   rg   r3   )rC   rq   r3   rf   rg   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   )rf   encoderG   s    r   raw_authzProxy.raw_auth   sM    
 yy  	
 ))A,%%g.		!0C0CG0LM	
r   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   )rf   r)   rq   rg   dict)rC   rf   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   )
rq   z	URL | strr3   zssl.SSLContext | Nonerf   ztuple[str, str] | Nonerg   zHeaderTypes | NonerU   rV   )rU   ztuple[bytes, bytes] | NonerY   )r   r   r   rE   propertyrt   rS   r   r   r   r   r      s[    
 .2'+&*'' +	'
 %' $' 
'0 
 
:r   r   r\   )rD   d      )r^   r_   )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_REDIRECTSr   r   r   <module>r      s    " 	   8 8 	
>	 	 	 +/!/'/
/ / 	/dT
 T
n'
 '
T*: *:Z !- rJ r   