
    g
                     >    d dl Z d dlZd dlmZ  G d de          ZdS )    N)ChromiumOptionsc                       e Zd ZdZdZed             Zej        defd            Ze	d             Z
e	d             Zd Zed             ZdS )	ChromeOptionsNc                     | j         S N)_user_data_dir)selfs    k/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/undetected_chromedriver/options.pyuser_data_dirzChromeOptions.user_data_dir   s    ""    pathc                     t           j                            |          }t           j                            |          | _        dS )a&  
        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   zChromeOptions.user_data_dir   s5     %% g..u55r   c                 z    d| v r4|                      dd          \  } }t                              ||          }| |iS )z4turn a (dotted key, value) into a proper nested dict.   )splitr   
_undot_key)keyvaluerests      r
   r   zChromeOptions._undot_key"   sC     #::		#q))IC!,,T599EU|r   c                     |D ]o}|| v r^t          | |         t                    rCt          ||         t                    r(t                              | |         ||                    d||         | |<   p| S )z]
        merges b into a
        leaf values in a are overwritten with values from b
        )
isinstancedictr   _merge_nested)abr   s      r
   r   zChromeOptions._merge_nested*   s|      	 	Caxxafd++ 
1S640H0H !//##???sVAcFFr   c                    | j                             d          }|r_|p| j        }t          j                            |d          }t          j        |d           i }|                                D ]/\  }}|                     || 	                    ||                    }0t          j                            |d          }t          j        
                    |          rRt          |dd          5 }|                     t          j        |          |          }d d d            n# 1 swxY w Y   t          |dd	          5 }t          j        ||           d d d            n# 1 swxY w Y   | j        d= d S d S )
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_prefszChromeOptions.handle_prefs8   s   )--g66 	4)@T-@M7<<yAALKt4444 K#kkmm  
U"00e!<!<  lMBBJw~~j)) P*xcBBB Pa"&"4"4TYq\\;"O"OKP P P P P P P P P P P P P P P j8#>>> *!	+q)))* * * * * * * * * * * * * * * *7333+	4 	4s$   4)D))D-0D-E((E,/E,c                 X     |             }|j                             |j                    |S r   )__dict__update)clsoptionsos      r
   from_optionszChromeOptions.from_optionsQ   s+    CEE	
'*+++r   )__name__
__module____qualname___sessionr   propertyr   setterstrstaticmethodr   r   r:   classmethodrA    r   r
   r   r      s        HN# # X# 6# 6 6 6 6   \   \4 4 42   [  r   r   )r2   r   #selenium.webdriver.chromium.optionsr   _ChromiumOptionsr   rK   r   r
   <module>rN      sj   
  				 S S S S S SJ J J J J$ J J J J Jr   