a
    RIh                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	Z	d dl
mZmZ G dd deZG dd	 d	ZG d
d dZdS )    N)Enum)Optional)parse)Proxy	ProxyTypec                   @   s   e Zd ZdZdZdZdS )AuthTypeZBasicZBearerz	X-API-KeyN)__name__
__module____qualname__BASICBEARER	X_API_KEY r   r   a/var/www/html/venv_bot_3.9/lib/python3.9/site-packages/selenium/webdriver/remote/client_config.pyr      s   r   c                   @   s*   e Zd Zdd Zdd ZddddZdS )	_ClientConfigDescriptorc                 C   s
   || _ d S N)name)selfr   r   r   r   __init__%   s    z _ClientConfigDescriptor.__init__c                 C   s   |j | j S r   __dict__r   )r   objclsr   r   r   __get__(   s    z_ClientConfigDescriptor.__get__Nreturnc                 C   s   ||j | j< d S r   r   )r   r   valuer   r   r   __set__+   s    z_ClientConfigDescriptor.__set__)r   r	   r
   r   r   r   r   r   r   r   r   $   s   r   c                   @   s&  e Zd ZedZedZedZedZedZedZ	edZ
edZed	Zed
ZedZedZedZdedejidddddddejdddfeee ee ee ee ee ee ee ee ee ee ee ee ddddZddddZee dddZee dddZdS )ClientConfigZ_remote_server_addr_keep_alive_proxyZ_ignore_certificatesZ_init_args_for_pool_manager_timeoutZ	_ca_certsZ	_usernameZ	_passwordZ
_auth_type_tokenZ_user_agent_extra_headersTZ	proxyType)rawFN)remote_server_addr
keep_aliveproxyignore_certificatesinit_args_for_pool_managertimeoutca_certsusernamepassword	auth_typetoken
user_agentextra_headersr   c                 C   s   || _ || _|| _|| _|pi | _|d u r2t n|| _|| _|	| _	|
| _
|| _|| _|| _|d u rdtjv rxtdqt n|| _d S )NREQUESTS_CA_BUNDLE)r%   r&   r'   r(   r)   socketgetdefaulttimeoutr*   r,   r-   r.   r/   r0   r1   osenvirongetenvcertifiwherer+   )r   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r   r   r   r   N   s     
zClientConfig.__init__r   c                 C   s   t  | _dS )z2Resets the timeout to the default value of socket.N)r3   r4   r!   )r   r   r   r   reset_timeoutq   s    zClientConfig.reset_timeoutc                 C   s   | j j}t| j}|tju r"dS |tju rtj	
dtj	
d}|rttj|dD ]F}|dkrj dS t|}|jr|j|jkr dS |j|jv rX dS qXtj	
| jdrdndtj	
| jdrd	nd
S |tju r| jdr| j jS | j jS dS )z0Returns the proxy URL to use for the connection.Nno_proxyZNO_PROXY,*zhttps://Zhttps_proxy
http_proxyZHTTPS_PROXYZ
HTTP_PROXY)r'   
proxy_typer   urlparser%   r   ZDIRECTSYSTEMr5   r6   getmapstrstripsplitnetlocpath
startswithZMANUALZsslProxyr>   )r   r?   Z
remote_addZ	_no_proxyentryZn_urlr   r   r   get_proxy_urlu   s,    



zClientConfig.get_proxy_urlc                 C   s   | j tju rV| jrV| jrV| j d| j }t|dd}dtjj	 d| iS | j tj
u r| jrdtj
j	 d| j iS | j tju r| jrtjj	 | j iS dS )z8Returns the authorization to add to the request headers.:zutf-8Authorization N)r.   r   r   r,   r-   base64	b64encodeencodedecoder   r   r/   r   )r   credentialsZencoded_credentialsr   r   r   get_auth_header   s    zClientConfig.get_auth_header)r   r	   r
   r   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r   r   rA   r   r   rD   r   booldictintr   r:   rK   rT   r   r   r   r   r   /   sX   #r   )rO   r5   r3   enumr   typingr   urllibr   r8   Zselenium.webdriver.common.proxyr   r   r   r   r   r   r   r   r   <module>   s   