
    ,h
                     6    d dl Z d dlZd dlmZ  G d de      Zy)    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y)	ChromeOptionsNc                     | j                   S N)_user_data_dir)selfs    a/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/undetected_chromedriver/options.pyuser_data_dirzChromeOptions.user_data_dir   s    """    pathc                     t         j                  j                  |      }t         j                  j                  |      | _        y)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   s-     % gg..u5r   c                 h    d| v r+| j                  dd      \  } }t        j                  ||      }| |iS )z4turn a (dotted key, value) into a proper nested dict.   )splitr   
_undot_key)keyvaluerests      r
   r   zChromeOptions._undot_key"   s;     #:		#q)IC!,,T59EU|r   c                     |D ]Q  }|| v rCt        | |   t              r0t        ||   t              rt        j                  | |   ||          J||   | |<   S | 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*   sd      	Caxafd+
1S640H!//##?sVAcF	 r   c                    | j                   j                  d      }|r9|xs | j                  }t        j                  j                  |d      }t        j                  |d       i }|j                         D ]'  \  }}| j                  || j                  ||            }) t        j                  j                  |d      }t        j                  j                  |      r<t        |dd      5 }| j                  t        j                  |      |      }d d d        t        |dd	      5 }t        j                  ||       d d d        | j                  d= y y # 1 sw Y   ExY w# 1 sw Y   $xY w)
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)@T-@-@M77<<yALKKt4 K#kkm 
U"00e!<
 lMBJww~~j)*xcB Pa"&"4"4TYYq\;"OKP j8#> *!		+q)* **73+ P P* *s   /&E+E%E"%E.c                 ^     |        }|j                   j                  |j                          |S r   )__dict__update)clsoptionsos      r
   from_optionszChromeOptions.from_optionsQ   s&    E	

'**+r   )__name__
__module____qualname___sessionr   propertyr   setterstrstaticmethodr   r   r:   classmethodrA    r   r
   r   r      s    HN# # 6# 6 6    42  r   r   )r2   r   #selenium.webdriver.chromium.optionsr   _ChromiumOptionsr   rK   r   r
   <module>rN      s   
  	 SJ$ Jr   