a
    _gc!                     @  s   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rVd dlZg dZG dd	 d	Ze ZddddddddZG dd dZG dd dZG dd dZeddZedddZdZdS )    )annotationsN   )Headers)	CertTypesHeaderTypesTimeoutTypes)URL)LimitsProxyTimeoutcreate_ssl_contextc                   @  s   e Zd ZdS )	UnsetTypeN)__name__
__module____qualname__ r   r   [/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/httpx/_config.pyr      s   r   Tzssl.SSLContext | str | boolzCertTypes | Noneboolzssl.SSLContext)verifycert	trust_envreturnc                 C  s  dd l }dd l}dd l}| du rz|rDtjdrD|jtjd d}q|rhtjdrh|jtjd d}q|j| d}nf| du r||j	}d|_
|j|_nBt| trd}||t tj| r|j| dS |j| dS | }|rd	}||t t|tr|| n
|j|  |S )
Nr   TZSSL_CERT_FILE)cafileZ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messager   r   r   r      s:    


r   c                	   @  sd   e Zd ZdZefeeeeddddddddddZd	d
ddZdddddZdd
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poolzTimeoutTypes | UnsetTypezNone | float | UnsetTypeNone)timeoutr1   r2   r3   r4   r   c                C  sd  t |tr^|tu sJ |tu s"J |tu s.J |tu s:J |j| _|j| _|j| _|j| _nt |tr|d | _|d | _t|dk rd n|d | _t|dk rd n|d | _nt |t	st |t	st |t	st |t	s|| _|| _|| _|| _nlt |t	rt
dt |t	r|n|| _t |t	r.|n|| _t |t	rD|n|| _t |t	rZ|n|| _d S )Nr   r            zShttpx.Timeout must either include a default, or set all four parameters explicitly.)r'   r   UNSETr1   r2   r3   r4   tuplelenr   
ValueError)selfr6   r1   r2   r3   r4   r   r   r   __init__V   sD    	



zTimeout.__init__zdict[str, float | None]r   c                 C  s   | j | j| j| jdS )Nr0   r0   r>   r   r   r   as_dict   s
    zTimeout.as_dict
typing.Anyr   otherr   c                 C  s<   t || jo:| j|jko:| j|jko:| j|jko:| j|jkS N)r'   	__class__r1   r2   r3   r4   r>   rE   r   r   r   __eq__   s    



zTimeout.__eq__r(   c              
   C  s`   | j j}t| j| j| j| jhdkr6| 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=)rG   r   r<   r1   r2   r3   r4   r>   
class_namer   r   r   __repr__   s    zTimeout.__repr__N)	r   r   r   __doc__r:   r?   rB   rI   rM   r   r   r   r   r   H   s   .	r   c                   @  sL   e Zd ZdZdddddddddd	d
ZdddddZdd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_expiryz
int | Nonezfloat | Noner5   )rQ   rR   rS   r   c                C  s   || _ || _|| _d S rF   rP   )r>   rQ   rR   rS   r   r   r   r?      s    zLimits.__init__rC   r   rD   c                 C  s0   t || jo.| j|jko.| j|jko.| j|jkS rF   )r'   rG   rQ   rR   rS   rH   r   r   r   rI      s    


zLimits.__eq__r(   r@   c                 C  s*   | j j}| d| j d| j d| j dS )Nz(max_connections=z, max_keepalive_connections=z, keepalive_expiry=rJ   )rG   r   rQ   rR   rS   rK   r   r   r   rM      s    zLimits.__repr__)r   r   r   rN   r?   rI   rM   r   r   r   r   r	      s   r	   c                   @  sL   e Zd Zddddddddddd	d
ZeddddZddddZdS )r
   N)ssl_contextauthheadersz	URL | strzssl.SSLContext | Noneztuple[str, str] | NonezHeaderTypes | Noner5   )urlrT   rU   rV   r   c                C  sj   t |}t|}|jdvr(td||js4|jrN|j|jf}|jd d d}|| _|| _|| _	|| _
d S )N)httphttpsZsocks5Zsocks5hzUnknown scheme for proxy URL )usernamepassword)r   r   schemer=   rZ   r[   	copy_withrW   rU   rV   rT   )r>   rW   rT   rU   rV   r   r   r   r?      s    
zProxy.__init__ztuple[bytes, bytes] | Noner@   c                 C  s.   | j d u rd S | j d d| j d dfS )Nr   zutf-8r   )rU   encoderA   r   r   r   raw_auth   s    zProxy.raw_authr(   c                 C  sd   | j r| j d dfnd }t| j}|r2d|nd}| jrLdt| jnd}d| | | dS )Nr   z********z, auth= z
, headers=zProxy(rJ   )rU   r(   rW   rV   dict)r>   rU   Zurl_strauth_strZheaders_strr   r   r   rM      s
    zProxy.__repr__)r   r   r   r?   propertyr_   rM   r   r   r   r   r
      s   r
   rO   )r6   d      )rQ   rR   )TNT)
__future__r   r   typingZ_modelsr   _typesr   r   r   Z_urlsr   TYPE_CHECKINGr   __all__r   r:   r   r   r	   r
   ZDEFAULT_TIMEOUT_CONFIGZDEFAULT_LIMITSZDEFAULT_MAX_REDIRECTSr   r   r   r   <module>   s(      1W*-
