
     f!                     r    d Z  G d d          Z G d d          Z G d d          Z G d d          Zd	S )
zThe Proxy implementation.c                   (    e Zd ZdZed             ZdS )ProxyTypeFactoryzFactory for proxy types.c                     | |dS )Nff_valuestring r   s     b/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/selenium/webdriver/common/proxy.pymakezProxyTypeFactory.make   s    $777    N)__name__
__module____qualname____doc__staticmethodr
   r   r   r	   r   r      s3        ""8 8 \8 8 8r   r   c                   \   e Zd ZdZe                    dd          Ze                    dd          Ze                    dd          Ze                    dd	          Z	e                    d
d          Z
e                    dd          Ze                    dd          Zed             ZdS )	ProxyTypezSet of possible types of proxy.

    Each proxy type has 2 properties:    'ff_value' is value of Firefox
    profile preference,    'string' is id of proxy type.
        DIRECT   MANUAL   PAC   	RESERVED1   
AUTODETECT   SYSTEM   UNSPECIFIEDc                 @   t          |t                    rd|v r|d         }t          |                                          }t	          |           D ];}t          | |          }t          |t                    rd|v r|d         |k    r|c S <t          d|           )Nr   zNo proxy type is found for )
isinstancedictstrupperdirgetattr	Exception)clsvalueattr
attr_values       r	   loadzProxyType.load+   s    eT"" 	$x5'8'8(OEE

  ""HH 	" 	"D d++J*d++ "J0F0F:V^K_chKhKh!!!!=e==>>>r   N)r   r   r   r   r   r
   r   r   r   
RESERVED_1r   r   r    classmethodr-   r   r   r	   r   r      s          ""1h//F""1h//F


5
)
)C!&&q+66J!&&q,77J""1h//F"''=99K? ? [? ? ?r   r   c                        e Zd Zd Zd Zd ZdS )_ProxyTypeDescriptorc                 "    || _         || _        d S N)namep_type)selfr4   r5   s      r	   __init__z_ProxyTypeDescriptor.__init__8   s    	r   c                 ,    t          || j                  S r3   )r'   r4   )r6   objr)   s      r	   __get__z_ProxyTypeDescriptor.__get__<   s    sDI&&&r   c                     | j         dk    r$t          |t                    st          d           t	          |d          | j                   t          |d| j                   t          || j         |           d S )N
autodetectz,Autodetect proxy value needs to be a boolean _verify_proxy_type_compatibility	proxyType)r4   r"   bool
ValueErrorr'   r5   setattr)r6   r9   r*   s      r	   __set__z_ProxyTypeDescriptor.__set__?   sx    9$$Zt-D-D$KLLL8788EEE[$+...TY&&&&&r   N)r   r   r   r7   r:   rB   r   r   r	   r1   r1   7   sA          ' ' '' ' ' ' 'r   r1   c                      e Zd ZdZej        ZdZdZdZ	dZ
dZdZdZdZdZdZ edej                  Z	  edej                  Z	  edej                  Z	  edej                  Z	  ed	ej                  Z	  ed
ej                  Z	  edej                  Z	  edej                  Z	  edej                  Z	  edej                  Z	 ddZe d             Z!e!j"        dd            Z!d Z#d Z$dS )ProxyzMProxy contains information about proxy type and necessary proxy
    settings.F Nr<   ftpProxy	httpProxynoProxyproxyAutoconfigUrlsslProxy
socksProxysocksUsernamesocksPasswordsocksVersionc                 n   |r-d|v r-|d         r%t                               |d                   | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _	        d	|v r|d	         r|d	         | _
        d
|v r|d
         r|d
         | _        d|v r|d         r|d         | _        dS dS dS dS )zuCreates a new Proxy.

        :Args:
         - raw: raw proxy data. If None, default class values are used.
        r>   rF   rG   rH   rI   rJ   r<   rK   rL   rM   rN   N)r   r-   
proxy_type	ftp_proxy
http_proxyno_proxyproxy_autoconfig_urlrJ   auto_detectsocks_proxysocks_usernamesocks_passwordsocks_version)r6   raws     r	   r7   zProxy.__init__   s     	9c!!c+&6!"+..[1A"B"BS  S_ !$Zc!!c+&6!"%k"2CC	N #I#s**s3G/H*,/0D,E)S  S_  #Js""s<'8"#&|#4 s""s<'8"#&|#4 #%%#o*>%&)/&:##%%#o*>%&)/&:#$$^)<$%(%8"""-	9 	9* %$$$r   c                     | j         S )z"Returns proxy type as `ProxyType`.)r>   )r6   s    r	   rP   zProxy.proxy_type  s     ~r   returnc                 >    |                      |           || _        dS )zKSets proxy type.

        :Args:
         - value: The proxy type.
        N)r=   r>   )r6   r*   s     r	   rP   zProxy.proxy_type  s#     	--e444r   c                 f    | j         t          j        |fvrt          d| d| j          d          d S )NzSpecified proxy type (z') not compatible with current setting ())r>   r   r    r@   )r6   compatible_proxys     r	   r=   z&Proxy._verify_proxy_type_compatibility  sN    >)"79I!JJJs)9ssbfbpsss   KJr   c                     d| j         d                                         i}g d}|D ]}t          | |          }|r|||<   |S )Nr>   r   )
r<   rF   rG   rI   rJ   rH   rK   rL   rM   rN   )r>   lowerr'   )r6   
proxy_capsproxiesproxyr,   s        r	   to_capabilitieszProxy.to_capabilities!  si    !4>(#;#A#A#C#CD

 
 
  	/ 	/E u--J /$.
5!r   r3   )r\   N)%r   r   r   r   r   r    r>   r<   rF   rG   rH   rI   rJ   rK   rL   rM   rN   r1   r   rU   r   rQ   rR   rS   r   rT   	ssl_proxyrV   rW   rX   rY   r7   propertyrP   setterr=   rf   r   r   r	   rD   rD   G   s         %IJHIGHJMML '&|Y5IJJK %$Z1ABBI &%k93CDDJ $#Iy/?@@H 0/0DimTT %$Z1ABBI '&|Y5EFFK *)/9;KLLN *)/9;KLLN )(9IJJM9 9 9 9<   X          r   rD   N)r   r   r   r1   rD   r   r   r	   <module>rj      s   "   8 8 8 8 8 8 8 8? ? ? ? ? ? ? ?6' ' ' ' ' ' ' ' l l l l l l l l l lr   