
    Xh                     v    d Z ddlZddlZddlmZmZ ddlm	Z	m
Z
mZmZmZ ddlmZ ddlmZmZ  G d de      Zy)	z>Manager to read and modify frontend config data in JSON files.    N)jupyter_config_dirjupyter_config_path)InstanceListUnicodedefaultobserve)LoggingConfigurable)BaseJSONConfigManagerrecursive_updatec                       e Zd ZdZ edd      j                  d      Zd Zd Zd	 Z	 e
 e             Z ed
      d        Z e       Z ed      d        Z ee      Z ed      d        Z ed      d        Zy)ConfigManagerz/Config Manager used for storing frontend configserverconfigzName of the config directory.)helpT)configc                     i }| j                   ddd   D ])  }t        |      }t        ||j                  |             + |S )z(Get the config from all config sections.N
config_dir)read_config_pathr   r   get)selfsection_namer   pcms        Z/var/www/html/myenv/lib/python3.12/site-packages/jupyter_server/services/config/manager.pyr   zConfigManager.get   sI    #%&&tt, 	;A&!4BVRVVL%9:	;     c                 :    | j                   j                  ||      S )z)Set the config only to the user's config.)write_config_managerset)r   r   datas      r   r    zConfigManager.set!   s    ((,,\4@@r   c                 :    | j                   j                  ||      S )z,Update the config only to the user's config.)r   update)r   r   new_datas      r   r#   zConfigManager.update%   s    ((//hGGr   r   c                     t               D cg c],  }t        j                  j                  || j                        . c}S c c}w N)r   ospathjoinconfig_dir_name)r   r   s     r   _default_read_config_pathz'ConfigManager._default_read_config_path-   s.    ?R?TU!Q 4 45UUUs   1Awrite_config_dirc                 f    t         j                  j                  t               | j                        S r&   )r'   r(   r)   r   r*   r   s    r   _default_write_config_dirz'ConfigManager._default_write_config_dir3   s!    ww||.0$2F2FGGr   r   c                 .    t        | j                        S Nr   )r   r,   r.   s    r   _default_write_config_managerz+ConfigManager._default_write_config_manager9   s    $0E0EFFr   c                 :    t        | j                        | _        y r1   )r   r,   r   )r   changes     r   _update_write_config_dirz&ConfigManager._update_write_config_dir=   s    $9TEZEZ$[!r   N)__name__
__module____qualname____doc__r   tagr*   r   r    r#   r   r   r   r+   r,   r/   r   r   r   r2   r	   r5    r   r   r   r      s    9n3VW[[ \ OAH GI V !V y H !H $$9:#$G %G  \ !\r   r   )r9   os.pathr'   typingtjupyter_core.pathsr   r   	traitletsr   r   r   r   r	   traitlets.configr
   jupyter_server.config_managerr   r   r   r;   r   r   <module>rC      s.    D   F ? ? 0 Q0\' 0\r   