
    'h+                     `    S r SSKr " S S5      r " S S5      r " S S5      r " S	 S
5      rg)zThe Proxy implementation.    Nc                   (    \ rS rSrSr\S 5       rSrg)ProxyTypeFactory   zFactory for proxy types.c                 
    XS.$ )Nff_valuestring r   s     h/var/www/home/psychics-availability/venv/lib/python3.13/site-packages/selenium/webdriver/common/proxy.pymakeProxyTypeFactory.make   s    $77    r
   N)__name__
__module____qualname____firstlineno____doc__staticmethodr   __static_attributes__r
   r   r   r   r      s    "8 8r   r   c                   $   \ rS rSrSr\R                  SS5      r\R                  SS5      r\R                  SS5      r	\R                  S	S
5      r
\R                  SS5      r\R                  SS5      r\R                  SS5      r\S 5       rSrg)	ProxyType   zSet 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.
r   DIRECT   MANUAL   PAC   	RESERVED1   
AUTODETECT   SYSTEM   UNSPECIFIEDc                 "   [        U[        5      (       a  SU;   a  US   n[        U5      R                  5       n[	        U 5       H:  n[        X5      n[        U[        5      (       d  M%  SU;   d  M-  US   U:X  d  M8  Us  $    [        SU 35      e)Nr	   zNo proxy type is found for )
isinstancedictstrupperdirgetattr	Exception)clsvalueattr
attr_values       r   loadProxyType.load.   s    eT""x5'8(OEE
  "HD +J*d++J0F:V^K_chKh!!  5eW=>>r   r
   N)r   r   r   r   r   r   r   r   r   r   
RESERVED_1r!   r#   r%   classmethodr2   r   r
   r   r   r   r      s     ""1h/F""1h/F


5
)C!&&q+6J!&&q,7J""1h/F"''=9K? ?r   r   c                   &    \ rS rSrS rS rS rSrg)_ProxyTypeDescriptor:   c                     Xl         X l        g Nnamep_type)selfr<   r=   s      r   __init___ProxyTypeDescriptor.__init__;   s    	r   c                 ,    [        XR                  5      $ r:   )r,   r<   )r>   objr.   s      r   __get___ProxyTypeDescriptor.__get__?   s    sII&&r   c                 J   U R                   S:X  a   [        U[        5      (       d  [        S5      eU R                   S:X  a  [        R
                  " S[        SS9  [        US5      " U R                  5        [        USU R                  5        [        XR                   U5        g )	N
autodetectz,Autodetect proxy value needs to be a booleanftpProxy8ftpProxy is deprecated and will be removed in the futurer   
stacklevel _verify_proxy_type_compatibility	proxyType)
r<   r'   bool
ValueErrorwarningswarnDeprecationWarningr,   r=   setattr)r>   rB   r/   s      r   __set___ProxyTypeDescriptor.__set__B   s}    99$Zt-D-DKLL99
" MMJ"
 	78E[$++.YY&r   r;   N)r   r   r   r   r?   rC   rS   r   r
   r   r   r7   r7   :   s    ''r   r7   c                   <   \ rS rSrSr\R                  rSrSr	Sr
SrSrSrSrSrSrSr\" S\R&                  5      r \" S\R*                  5      r \" S\R*                  5      r \" S	\R*                  5      r \" S
\R2                  5      r \" S\R*                  5      r \" S\R*                  5      r \" S\R*                  5      r \" S\R*                  5      r \" S\R*                  5      r SS jr \!S 5       r"\"RF                  SS j5       r"S r$S r%S r&Sr'g)ProxyR   zIProxy contains information about proxy type and necessary proxy
settings.F NrF   rG   	httpProxynoProxyproxyAutoconfigUrlsslProxy
socksProxysocksUsernamesocksPasswordsocksVersionc                    U(       GaN  SU;   a'  US   (       a  [         R                  US   5      U l        SU;   a.  US   (       a$  [        R                  " S[
        SS9  US   U l        SU;   a  US   (       a
  US   U l        SU;   a  US   (       a
  US   U l        SU;   a  US   (       a
  US   U l	        S	U;   a  US	   (       a
  US	   U l
        S
U;   a  US
   (       a
  US
   U l        SU;   a  US   (       a
  US   U l        SU;   a  US   (       a
  US   U l        SU;   a  US   (       a
  US   U l        SU;   a  US   (       a  US   U l        gggg)z]Creates a new Proxy.

:Args:
 - raw: raw proxy data. If None, default class values are used.
rL   rG   rH   r   rI   rY   rZ   r[   r\   rF   r]   r^   r_   r`   N)r   r2   
proxy_typerO   rP   rQ   	ftp_proxy
http_proxyno_proxyproxy_autoconfig_urlr\   auto_detectsocks_proxysocks_usernamesocks_passwordsocks_version)r>   raws     r   r?   Proxy.__init__   sa    c!c+&6"+..[1A"B S S_N& 
 "%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 r   c                     U R                   $ )z"Returns proxy type as `ProxyType`.)rL   )r>   s    r   rb   Proxy.proxy_type  s     ~~r   c                 2    U R                  U5        Xl        g)z3Sets proxy type.

:Args:
 - value: The proxy type.
N)rK   rL   )r>   r/   s     r   rb   ro   $  s     	--e4r   c                 |    U R                   [        R                  U4;  a  [        SU SU R                    S35      eg )NzSpecified proxy type (z') not compatible with current setting ())rL   r   r%   rN   )r>   compatible_proxys     r   rK   &Proxy._verify_proxy_type_compatibility.  sK    >>)"7"79I!JJ()9(::abfbpbpaqqrs  Kr   c                     SU R                   S   R                  5       0n/ SQnU H  n[        X5      nU(       d  M  XAU'   M     U$ )NrL   r	   )
rF   rG   rY   r[   r\   rZ   r]   r^   r_   r`   )rL   lowerr,   )r>   
proxy_capsproxiesproxyr1   s        r   to_capabilitiesProxy.to_capabilities4  sP    !4>>(#;#A#A#CD

 E -Jz$.5!  r   c                    U R                   S   R                  5       nSU0nUS:X  Gak  U R                  (       a  U R                  US'   U R                  (       a  U R                  US'   U R                  (       a  U R                  US'   U R
                  b  U R
                  US'   U R                  (       a  [        U R                  [        5      (       aU  U R                  R                  S5       Vs/ s H)  o3R                  5       (       d  M  UR                  5       PM+     snUS	'   U$ [        U R                  [        5      (       a=  [        S
 U R                   5       5      (       d  [        S5      eU R                  US	'   U$ [        S5      e U$ US:X  a   U R                  (       a  U R                  US'   U$ s  snf )zgConvert proxy settings to BiDi format.

Returns:
-------
    dict: Proxy configuration in BiDi format.
r	   rL   manualrY   r\   r]   r`   ,rZ   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr:   )r'   r)   ).0hs     r   	<genexpr>%Proxy.to_bidi_dict.<locals>.<genexpr>a  s     H<az!S11<s   z'no_proxy list must contain only stringsz>no_proxy must be a comma-separated string or a list of stringspacr[   )rL   rv   rY   r\   r]   r`   rZ   r'   r)   splitstriplistall	TypeErrorr[   )r>   rb   resulthosts       r   to_bidi_dictProxy.to_bidi_dictI  su    ^^H-335
z*!~~&*nn{#}}%)]]z"'+|$  ,)-):):~&||dllC00BF,,BTBTUXBY(jBY$]g]g]iBY(jF9%   d33H4<<HHH'(QRR(,F9%  $$dee  	 5 &&/3/F/F+, )ks   2F<F<)rg   rc   rd   re   rL   rf   rb   rj   rh   ri   rk   r\   r:   )returnN)(r   r   r   r   r   r   r%   rL   rF   rG   rY   rZ   r[   r\   r]   r^   r_   r`   r7   r!   rg   r   rc   rd   re   r   rf   	ssl_proxyrh   ri   rj   rk   r?   propertyrb   setterrK   rz   r   r   r
   r   r   rV   rV   R   s    %%IJHIGHJMML '|Y5I5IJK %Z1A1ABI &k93C3CDJ $Iy/?/?@H 00DimmT %Z1A1ABI '|Y5E5EFK */9;K;KLN */9;K;KLN )9I9IJM#9J    *"r   rV   )r   rO   r   r   r7   rV   r
   r   r   <module>r      s7   $   8 8? ?6' '0Y Yr   