
    g                         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e          Z G d	 d
          Z G d d          ZdS )    N)Enum)Optional)parse)Proxy)	ProxyTypec                       e Zd ZdZdZdZdS )AuthTypeBasicBearerz	X-API-KeyN)__name__
__module____qualname__BASICBEARER	X_API_KEY     s/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/selenium/webdriver/remote/client_config.pyr	   r	      s        EFIIIr   r	   c                   "    e Zd Zd Zd ZddZdS )_ClientConfigDescriptorc                     || _         d S N)name)selfr   s     r   __init__z _ClientConfigDescriptor.__init__%   s    			r   c                 &    |j         | j                 S r   __dict__r   )r   objclss      r   __get__z_ClientConfigDescriptor.__get__(   s    |DI&&r   returnNc                 $    ||j         | j        <   d S r   r   )r   r   values      r   __set__z_ClientConfigDescriptor.__set__+   s    "'TYr   r"   N)r   r   r   r   r!   r%   r   r   r   r   r   $   sF          ' ' '( ( ( ( ( (r   r   c                      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ej        dddfdedee         dee         dee         dee         dee         dee         dee         dee         dee         dee         dee         dee         d dfd!Zd%d"Zd ee         fd#Zd ee         fd$ZdS )&ClientConfig_remote_server_addr_keep_alive_proxy_ignore_certificates_init_args_for_pool_manager_timeout	_ca_certs	_username	_password
_auth_type_token_user_agent_extra_headersT	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           	         || _         || _        || _        || _        |pi | _        || _        || _        |	| _        |
| _        || _	        || _
        || _        |gt          j        d          @t          t          j        dt          t!          j                                                  nt!          j                    n|| _        |5dt          j        v rt          j        d          nt'          j                    n|| _        d S )NGLOBAL_DEFAULT_TIMEOUTREQUESTS_CA_BUNDLE)r8   r9   r:   r;   r<   r=   r?   r@   rA   rB   rC   rD   osgetenvfloatstrsocketgetdefaulttimeoutenvironcertifiwherer>   )r   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   s                 r   r   zClientConfig.__init__N   s	     #5$
#6 *D*J'  "
$*  9566B bi 8#f>V>X>X:Y:YZZ[[[-///  	  1E
0R0RRY+,,,X_XeXgXgXg 	r   c                 6    t          j                    | _        dS )z2Resets the timeout to the default value of socket.N)rL   rM   r.   )r   s    r   reset_timeoutzClientConfig.reset_timeout{   s    022r   c                 f   | j         j        }t          j        | j                  }|t
          j        u rdS |t
          j        u r,t          j	        
                    dt          j	        
                    d                    }|rxt          t          j        |                    d                    D ]J}|dk    r dS t          j        |          }|j        r|j        |j        k    r dS |j        |j        v r dS Kt          j	        
                    | j                            d          rdndt          j	        
                    | j                            d          rd	nd
                    S |t
          j        u r2| j                            d          r| j         j        n| j         j        S dS )z0Returns the proxy URL to use for the connection.Nno_proxyNO_PROXY,*zhttps://https_proxy
http_proxyHTTPS_PROXY
HTTP_PROXY)r:   
proxy_typer   urlparser8   r   DIRECTSYSTEMrH   rN   getmaprK   stripsplitnetlocpath
startswithMANUALsslProxyrY   )r   r\   
remote_add	_no_proxyentryn_urls         r   get_proxy_urlzClientConfig.get_proxy_url   s   Z*
^D$;<<
)))4)))
z2:>>*3M3MNNI $ IOOC,@,@AA $ $E||#tt!N511E| $
(9U\(I(I#ttzZ%666#tt 7:>>!%!8!C!CJ!O!OaUa
0G0R0RS]0^0^p}}dpqq   )))*.*A*L*LZ*X*Xs4:&&^b^h^sstr   c                    | j         t          j        u rq| j        rj| j        rc| j         d| j         }t          j        |                    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)rA   r	   r   r?   r@   base64	b64encodeencodedecoder$   r   rB   r   )r   credentialsencoded_credentialss      r   get_auth_headerzClientConfig.get_auth_header   s    >X^+++$-+!]<<T]<<K"("2;3E3Eg3N3N"O"O"V"VW^"_"_#(<%T%T?R%T%TUU>X_,,,#(=%L%L
%L%LMM>X///DJ/)/1dj?CCtr   r&   )r   r   r   r   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   r   r   r_   r	   r   rK   r   booldictintr   rR   rm   rx   r   r   r   r(   r(   /   s|       001FGG&((77J)##H--EN112HII;!8!89V!W!W5%%j11G&&{33H>&&{33H&&{33H''55IH##H--EO((77JF++,<==MA
 &*!&K9I+J!K!K!K.359!%"&"&"&(0#$((,+
 +
+
 TN+
 	+

 &d^+
 %-TN+
 #+
 3-+
 3-+
 3-+
 H%+
 }+
 SM+
  ~+
 
+
 +
 +
 +
Z3 3 3 3x}    2
$ 
 
 
 
 
 
r   r(   )rr   rH   rL   enumr   typingr   urllibr   rO   selenium.webdriver.common.proxyr   r   r	   r   r(   r   r   r   <module>r      s  "  				                     1 1 1 1 1 1 5 5 5 5 5 5    t   ( ( ( ( ( ( ( (s s s s s s s s s sr   