
    vKg
                     6    S SK r S SKrS SKJr   " S S\5      rg)    N)ChromiumOptionsc                       \ rS rSrSrSr\S 5       r\R                  S\	4S j5       r\
S 5       r\
S 5       rS r\S	 5       rS
rg)ChromeOptions   Nc                     U R                   $ N_user_data_dir)selfs    _/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/undetected_chromedriver/options.pyuser_data_dirChromeOptions.user_data_dir   s    """    pathc                     [         R                  R                  U5      n[         R                  R                  U5      U l        g)z
Sets the browser profile folder to use, or creates a new profile
at given <path>.

Parameters
----------
path: str
    the path to a chrome profile folder
    if it does not exist, a new profile will be created at given location
N)osr   abspathnormpathr
   )r   r   apaths      r   r   r      s-     % gg..u5r   c                 f    SU ;   a)  U R                  SS5      u  p[        R                  X!5      nX0$ )z4turn a (dotted key, value) into a proper nested dict.   )splitr   
_undot_key)keyvaluerests      r   r   ChromeOptions._undot_key"   s5     #:		#q)IC!,,T9E|r   c                     U HX  nX ;   aJ  [        X   [        5      (       a3  [        X   [        5      (       a  [        R                  X   X   5        MR  X   X'   MZ     U $ )zE
merges b into a
leaf values in a are overwritten with values from b
)
isinstancedictr   _merge_nested)abr   s      r   r"   ChromeOptions._merge_nested*   sW     Cxafd++
1640H0H!//?VAF  r   c                    U R                   R                  S5      nU(       Ga;  U=(       d    U R                  n[        R                  R                  US5      n[        R                  " USS9  0 nUR                  5        H%  u  pVU R                  X@R                  XV5      5      nM'     [        R                  R                  US5      n[        R                  R                  U5      (       a:  [        USSS9 nU R                  [        R                  " U5      U5      nS S S 5        [        USS	S9 n[        R                  " XH5        S S S 5        U R                  S	 g g ! , (       d  f       NG= f! , (       d  f       N.= f)
NprefsDefaultT)exist_okPreferenceslatin1r)encodingmodew)experimental_optionsgetr
   r   r   joinmakedirsitemsr"   r   existsopenjsonloaddump_experimental_options)	r   r   r'   default_pathundot_prefsr   r   
prefs_filefs	            r   handle_prefsChromeOptions.handle_prefs8   s"   ))--g6)@T-@-@M77<<yALKKt4 K#kkm
"00!< ,
 lMBJww~~j))*xcBa"&"4"4TYYq\;"OK C j8#>!		+) ? **73+  CB ?>s   8'E 2E1 
E.1
E?c                 ^    U " 5       nUR                   R                  UR                   5        U$ r   )__dict__update)clsoptionsos      r   from_optionsChromeOptions.from_optionsQ   s&    E	

'**+r   r	   )__name__
__module____qualname____firstlineno___sessionr
   propertyr   setterstrstaticmethodr   r"   r?   classmethodrG   __static_attributes__ r   r   r   r      s    HN# # 6# 6 6    42  r   r   )r7   r   #selenium.webdriver.chromium.optionsr   _ChromiumOptionsr   rT   r   r   <module>rW      s   
  	 SJ$ Jr   