a
    5ñ»j¸  ã                   @   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 d dl
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   úME:\soccer\ml_env\Lib\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 r€dtjv rxt d¡q‚t ¡ 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   O   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_timeoutr   s    zClientConfig.reset_timeoutc                 C   s   | j j}t | j¡}|tju r"dS |tju rÖtj	 
dtj	 
d¡¡}|r t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¡r¶dndtj	 
| j d¡rÎd	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_urlv   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r€dtj
j	› d| j› �iS | j tju r¤| jr¤t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   0   sX   òñ#r   )rO   r5   r3   Úenumr   Útypingr   Úurllibr   r8   Zselenium.webdriver.common.proxyr   r   r   r   r   r   r   r   r   Ú<module>   s   