
    ziN0                        d dl Z d dlZd dlZd dlZd dlmZ d dlZddlmZ ddl	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 d	                    g d
          Z e j        d          Z G d d          Z e            Z	 	 	 	 d#dej        e         dedededej        f
dZ G 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 )$    N)Path   )set_minimum_tls_version_1_2)Headers)	CertTypesHeaderTypesTimeoutTypesURLTypesVerifyTypes)URL)get_ca_bundle_from_env:)zECDHE+AESGCMzECDHE+CHACHA20z
DHE+AESGCMzDHE+CHACHA20zECDH+AESGCMz	DH+AESGCMzECDH+AESzDH+AESz
RSA+AESGCMzRSA+AESz!aNULLz!eNULLz!MD5z!DSShttpxc                       e Zd ZdS )	UnsetTypeN)__name__
__module____qualname__     X/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/httpx/_config.pyr   r   &   s        Dr   r   TFcertverify	trust_envhttp2returnc                 2    t          | |||          j        S )Nr   r   r   r   )	SSLConfigssl_contextr   s       r   create_ssl_contextr!   -   s'     &IU  r   c                       e Zd ZdZ e ej                              Zddddddej	        e
         deded	ed
df
dZd
ej        fdZd
ej        fdZd
ej        fdZd
ej        fdZdej        d
dfdZdS )r   z
    SSL Configuration.
    NTFr   r   r   r   r   r   c                p    || _         || _        || _        || _        |                                 | _        d S N)r   r   r   r   load_ssl_contextr    )selfr   r   r   r   s        r   __init__zSSLConfig.__init__?   s:     	"
0022r   c                     t                               d| j        | j        | j        | j                   | j        r|                                 S |                                 S )Nz8load_ssl_context verify=%r cert=%r trust_env=%r http2=%r)loggerdebugr   r   r   r   load_ssl_context_verifyload_ssl_context_no_verifyr&   s    r   r%   zSSLConfig.load_ssl_contextM   s_    FKINJ	
 	
 	
 ; 	2//111..000r   c                     |                                  }d|_        t          j        |_        |                     |           |S )zC
        Return an SSL context for unverified connections.
        F)_create_default_ssl_contextcheck_hostnamessl	CERT_NONEverify_mode_load_client_certs)r&   contexts     r   r,   z$SSLConfig.load_ssl_context_no_verifyZ   s@     2244!&!m(((r   c                    | j         r | j        du rt                      }||| _        t          | j        t          j                  r| j        }|                     |           |S t          | j        t                    r| j        }nbt          | j                  
                                rt          | j                  }n't          d                    | j                            |                                 }t          j        |_        d|_        	 d|_        n# t$          $ r Y nw xY w	 d|_        n# t$          $ r Y nw xY w|                                rAt+          |          }t,                              d|           |                    |           nT|                                r@t+          |          }t,                              d|           |                    |           |                     |           |S )	zA
        Return an SSL context for verified connections.
        TNzECould not find a suitable TLS CA certificate bundle, invalid path: {}Fzload_verify_locations cafile=%r)cafilezload_verify_locations capath=%r)capath)r   r   r   
isinstancer1   
SSLContextr4   boolDEFAULT_CA_BUNDLE_PATHr   existsIOErrorformatr/   CERT_REQUIREDr3   r0   post_handshake_authAttributeErrorhostname_checks_common_nameis_filestrr)   r*   load_verify_locationsis_dir)r&   	ca_bundler5   ca_bundle_pathr7   r8   s         r   r+   z!SSLConfig.load_ssl_context_verifyd   s    > 	(dkT11.00I$'dk3>22 	kG##G,,,NT** 	!8NN$+%%'' 	!$+..NN##)6$+#6#6  
 2244!/!%	*.G'' 	 	 	D	
	27G// 	 	 	D	 !!## 	9((FLL:FCCC)))8888""$$ 	9((FLL:FCCC)))888(((s$   D 
D+*D+/D7 7
EEc                    t          j        t           j                  }t          |           |xj        t           j        z  c_        |                    t                     t           j        r#| j	        rddgndg}|
                    |           t          j                            d          }|r| j        r||_        |S )zy
        Creates the default SSLContext object that's used for both verified
        and unverified connections.
        zhttp/1.1h2SSLKEYLOGFILE)r1   r:   PROTOCOL_TLS_CLIENTr   optionsOP_NO_COMPRESSIONset_ciphersDEFAULT_CIPHERSHAS_ALPNr   set_alpn_protocolsosenvirongetr   keylog_filename)r&   r5   alpn_idents
keylogfiles       r   r/   z%SSLConfig._create_default_ssl_context   s    
 .!899#G,,,300O,,,< 	404
L:t,,K&&{333Z^^O44
 	1$. 	1&0G#r   r    c                 (   | j         t          | j         t                    r|                    | j                    dS t          | j         t                    rGt          | j                   dk    r/|                    | j         d         | j         d                    dS t          | j         t                    rUt          | j                   dk    r?|                    | j         d         | j         d         | j         d                    dS dS dS dS )	zF
        Loads client certificates into our SSLContext object
        N)certfile   r   r   )r[   keyfile   )r[   r]   password)r   r9   rE   load_cert_chaintuplelen)r&   r    s     r   r4   zSSLConfig._load_client_certs   s    9 $)S)) 	++TY+?????DIu-- #di..A2E2E++TYq\49UV<+XXXXXDIu-- #di..A2E2E++!Yq\ IaL!Yq\ ,      ! 
 2E2Er   )r   r   r   __doc__r   certifiwherer<   typingOptionalr   r   r;   r'   r1   r:   r%   r,   r+   r/   r4   r   r   r   r   r   8   s6         "T-'-//22
 ,0"3 3 3 oi(3 	3
 3 3 
3 3 3 31#. 1 1 1 1CN    5 5 5 5 5nS^    (cn       r   r   c                   .   e Zd ZdZefeeeeddej        eef         dej        de	ef         dej        de	ef         dej        de	ef         dej        de	ef         d	dfd
Z
d	ej        eej        e	         f         fdZdej        d	efdZd	efdZdS )Timeouta  
    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timeoutrk   Nrl   rm   rn   r   c                   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   r^   r\      zShttpx.Timeout must either include a default, or set all four parameters explicitly.)r9   ri   UNSETrk   rl   rm   rn   ra   rb   r   
ValueError)r&   ro   rk   rl   rm   rn   s         r   r'   zTimeout.__init__   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   c                 8    | j         | j        | j        | j        dS )Nrj   rj   r-   s    r   as_dictzTimeout.as_dict   s%    |IZI	
 
 	
r   otherc                     t          || j                  o?| j        |j        k    o/| j        |j        k    o| j        |j        k    o| j        |j        k    S r$   )r9   	__class__rk   rl   rm   rn   r&   rv   s     r   __eq__zTimeout.__eq__  s^    udn-- (-(	UZ'( 
ek)( 	UZ'	
r   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=)rx   r   rb   rk   rl   rm   rn   r&   
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   )r   r   r   rc   rr   rf   Unionr	   r   floatr'   DictrE   rg   ru   Anyr;   rz   r   r   r   r   ri   ri      sM         :?,I 9>5:6;5:,I ,I ,IlI56,I dE945	,I
 l4	12,I |D%23,I l4	12,I 
,I ,I ,I ,I\
S&/%*@%@A 
 
 
 

FJ 
4 
 
 
 

# 
 
 
 
 
 
r   ri   c            	           e Zd ZdZdddddej        e         dej        e         dej        e         ddfd	Zd
ej	        de
fdZdefdZdS )Limitsa  
    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_expiryr   r   r   r   c                0    || _         || _        || _        d S r$   r   )r&   r   r   r   s       r   r'   zLimits.__init__%  s"      /)B& 0r   rv   c                     t          || j                  o/| j        |j        k    o| j        |j        k    o| j        |j        k    S r$   )r9   rx   r   r   r   ry   s     r   rz   zLimits.__eq__0  sT    udn-- @$(==@.%2QQ@ %)??		
r   c                 T    | j         j        }| d| j         d| j         d| j         dS )Nz(max_connections=z, max_keepalive_connections=z, keepalive_expiry=r|   )rx   r   r   r   r   r}   s     r   r   zLimits.__repr__8  sR    ^,
 9 9D,@ 9 9)-)G9 9 $ 59 9 9	
r   )r   r   r   rc   rf   rg   intr   r'   r   r;   rz   rE   r   r   r   r   r   r     s           15:>36	1 	1 	1  -	1 $*?3#7		1
 !/%0	1 
	1 	1 	1 	1
FJ 
4 
 
 
 

# 
 
 
 
 
 
r   r   c                       e Zd Zdddddedej        ej                 dej        ej        e	e	f                  dej        e
         ddf
dZedej        ej        eef                  fd	            Zde	fd
ZdS )ProxyN)r    authheadersurlr    r   r   r   c                   t          |          }t          |          }|j        dvrt          d|          |j        s|j        r%|j        |j        f}|                    d d           }|| _        || _        || _	        || _
        d S )N)httphttpssocks5zUnknown scheme for proxy URL )usernamer_   )r   r   schemers   r   r_   	copy_withr   r   r   r    )r&   r   r    r   r   s        r   r'   zProxy.__init__B  s     #hh'"":888DSDDEEE< 	>3< 	>L#,/D---==C	&r   c                     | j         d n?| j         d                             d          | j         d                             d          fS )Nr   zutf-8r   )r   encoder-   s    r   raw_authzProxy.raw_authZ  sH    
 y  D)A,%%g..	!0C0CG0L0L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(r|   )r   rE   r   r   dict)r&   r   url_strauth_strheaders_strs        r   r   zProxy.__repr__c  s    -1Y@	!j))D ]]&)-5%T%%%2=A\Q94#5#5999r999;9999r   )r   r   r   r
   rf   rg   r1   r:   TuplerE   r   r'   propertybytesr   r   r   r   r   r   r   A  s        
 8<8<04' ' '' _S^4	'
 ofl3845' -' 
' ' ' '0 
&/&,ue|*DE 
 
 
 X
:# : : : : : :r   r   r   )ro   d      )r   r   )NTTF)&loggingrT   r1   rf   pathlibr   rd   _compatr   _modelsr   _typesr   r   r	   r
   r   _urlsr   _utilsr   joinrQ   	getLoggerr)   r   rr   rg   r;   r:   r!   r   ri   r   r   DEFAULT_TIMEOUT_CONFIGDEFAULT_LIMITSDEFAULT_MAX_REDIRECTSr   r   r   <module>r      sh    				 



         0 0 0 0 0 0       O O O O O O O O O O O O O O       * * * * * *((   ( 
	7	#	#	 	 	 	 	 	 	 	 		 (,	 
/)
$  	
 	^   E E E E E E E EPT
 T
 T
 T
 T
 T
 T
 T
n'
 '
 '
 '
 '
 '
 '
 '
T*: *: *: *: *: *: *: *:Z !--- rJJJ   r   