
    Mhc!                    .   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S )!    )annotationsN   )Headers)	CertTypesHeaderTypesTimeoutTypes)URL)LimitsProxyTimeoutcreate_ssl_contextc                      e Zd ZdS )	UnsetTypeN)__name__
__module____qualname__     M/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/httpx/_config.pyr   r      s        Dr   r   Tverifyssl.SSLContext | str | boolcertCertTypes | None	trust_envboolreturnssl.SSLContextc                h   dd l }dd l}dd l}| du r|rBt          j                            d          r# |j        t          j        d                   }n	|rAt          j                            d          r" |j        t          j        d                   }n |j        |                                          }n| du r) |j        |j	                  }d|_
        |j        |_        nut          | t                    r^d}|                    |t                      t          j                            |           r |j        |           S  |j        |           S | }|rRd	}|                    |t                      t          |t                    r|                    |           n
 |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)r   r   r   r#   r$   r%   ctxmessages           r   r   r      s   
 JJJOOONNN~~ 	E88 	E,#,BJ4OPPPCC 	E2:>>.99 	E,#,BJ~4NOOOCC -#,GMMOODDDCC	5cnS455"-	FC	 	  J 	
 	g12227==   	=-3-V<<<<)s)8888 	'L 	 	g1222dC   	'%%%%C&&Jr   c                  B    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dS )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pooltimeoutTimeoutTypes | UnsetTyper;   None | float | UnsetTyper<   r=   r>   r   Nonec                  t          |t                    r^|t          u sJ |t          u sJ |t          u sJ |t          u sJ |j        | _        |j        | _        |j        | _        |j        | _        d S t          |t                    r`|d         | _        |d         | _        t          |          dk     rd n|d         | _        t          |          dk     rd n|d         | _        d S t          |t                    s]t          |t                    sHt          |t                    s3t          |t                    s|| _        || _        || _        || _        d S t          |t                    rt          d          t          |t                    r|n|| _        t          |t                    r|n|| _        t          |t                    r|n|| _        t          |t                    r|n|| _        d S )Nr   r            zShttpx.Timeout must either include a default, or set all four parameters explicitly.)r0   r   UNSETr;   r<   r=   r>   tuplelenr   
ValueError)selfr?   r;   r<   r=   r>   s         r   __init__zTimeout.__init__V   s    gw'' #	Ie####5====E>>>>5===="?DLDI DJDIII'' 	I"1:DL
DI!$W!1!1wqzDJ #Gq 0 0gajDIIIw	**	I$	**	I %++	I $	**		I #DLDIDJDIII'9--  2   '1)&D&DQ77'DL#-dI#>#>HDDI$.ui$@$@KeDJ#-dI#>#>HDDIIIr   dict[str, float | None]c                8    | j         | j        | j        | j        dS )Nr:   r:   rK   s    r   as_dictzTimeout.as_dict   s%    |IZI	
 
 	
r   other
typing.Anyr   c                    t          || j                  o?| j        |j        k    o/| j        |j        k    o| j        |j        k    o| j        |j        k    S N)r0   	__class__r;   r<   r=   r>   rK   rQ   s     r   __eq__zTimeout.__eq__   s^    udn-- (-(	UZ'( 
ek)( 	UZ'	
r   r1   c           
         | 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=)rU   r   rI   r;   r<   r=   r>   rK   
class_names     r   __repr__zTimeout.__repr__   s    ^,
diTY?@@AEE ::4<:::: G GDL G GIG G'+zG G:>)G G G	
r   N)r?   r@   r;   rA   r<   rA   r=   rA   r>   rA   r   rB   )r   rM   rQ   rR   r   r   r   r1   )	r   r   r   __doc__rG   rL   rP   rW   r\   r   r   r   r   r   H   s          -2,I -2).*/).,I ,I ,I ,I ,I ,I\
 
 
 

 
 
 

 
 
 
 
 
r   r   c                  4    e Zd ZdZddddddZddZddZdS )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_expiryrc   
int | Nonerd   re   float | Noner   rB   c               0    || _         || _        || _        d S rT   rb   )rK   rc   rd   re   s       r   rL   zLimits.__init__   s"      /)B& 0r   rQ   rR   r   c                    t          || j                  o/| j        |j        k    o| j        |j        k    o| j        |j        k    S rT   )r0   rU   rc   rd   re   rV   s     r   rW   zLimits.__eq__   sT    udn-- @$(==@.%2QQ@ %)??		
r   r1   c                T    | j         j        }| d| j         d| j         d| j         dS )Nz(max_connections=z, max_keepalive_connections=z, keepalive_expiry=rY   )rU   r   rc   rd   re   rZ   s     r   r\   zLimits.__repr__   sR    ^,
 9 9D,@ 9 9)-)G9 9 $ 59 9 9	
r   )rc   rf   rd   rf   re   rg   r   rB   r]   r^   )r   r   r   r_   rL   rW   r\   r   r   r   r
   r
      so           '+04),	1 	1 	1 	1 	1 	1
 
 
 

 
 
 
 
 
r   r
   c                  @    e Zd ZddddddZedd            ZddZdS )r   N)ssl_contextauthheadersurl	URL | strrl   ssl.SSLContext | Nonerm   tuple[str, str] | Nonern   HeaderTypes | Noner   rB   c                  t          |          }t          |          }|j        dvrt          d|          |j        s|j        r%|j        |j        f}|                    d d           }|| _        || _        || _	        || _
        d S )N)httphttpssocks5socks5hzUnknown scheme for proxy URL )usernamepassword)r	   r   schemerJ   ry   rz   	copy_withro   rm   rn   rl   )rK   ro   rl   rm   rn   s        r   rL   zProxy.__init__   s     #hh'"":CCCDSDDEEE< 	>3< 	>L#,/D---==C	&r   tuple[bytes, bytes] | Nonec                    | j         d n?| j         d                             d          | j         d                             d          fS )Nr   zutf-8r   )rm   encoderO   s    r   raw_authzProxy.raw_auth   sH    
 y  D)A,%%g..	!0C0CG0L0LM	
r   r1   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(rY   )rm   r1   ro   rn   dict)rK   rm   url_strauth_strheaders_strs        r   r\   zProxy.__repr__   s    -1Y@	!j))D ]]&)-5%T%%%2=A\Q94#5#5999r999;9999r   )
ro   rp   rl   rq   rm   rr   rn   rs   r   rB   )r   r}   r^   )r   r   r   rL   propertyr   r\   r   r   r   r   r      sq        
 .2'+&*' ' ' ' ' '0 
 
 
 X
: : : : : :r   r   ra   )r?   d      )rc   rd   )TNT)r   r   r   r   r   r   r   r   )
__future__r   r&   typing_modelsr   _typesr   r   r   _urlsr	   TYPE_CHECKINGr#   __all__r   rG   r   r   r
   r   DEFAULT_TIMEOUT_CONFIGDEFAULT_LIMITSDEFAULT_MAX_REDIRECTSr   r   r   <module>r      s   " " " " " " 				        8 8 8 8 8 8 8 8 8 8      	 JJJ
>
>
>	 	 	 	 	 	 	 	 		 +/!. . . . .bT
 T
 T
 T
 T
 T
 T
 T
n'
 '
 '
 '
 '
 '
 '
 '
T*: *: *: *: *: *: *: *:Z !--- rJJJ   r   