
    ^h                     v    S r SSKrSSKrSSKJrJr  SSKJ	r	J
r
JrJrJr  SSKJr  SSKJrJr   " S S\5      rg)	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                       \ rS rSrSr\" SSS9R                  SS9rS rS	 r	S
 r
\" \" 5       5      r\" S5      S 5       r\" 5       r\" S5      S 5       r\" \5      r\" S5      S 5       r\" S5      S 5       rSrg)ConfigManager   z/Config Manager used for storing frontend configserverconfigzName of the config directory.)helpT)configc                     0 nU R                   SSS2    H&  n[        US9n[        X$R                  U5      5        M(     U$ )z(Get the config from all config sections.N
config_dir)read_config_pathr   r   get)selfsection_namer   pcms        `/home/james-whalen/.local/lib/python3.13/site-packages/jupyter_server/services/config/manager.pyr   ConfigManager.get   sB    #%&&tt,A&!4BVVVL%9: -     c                 8    U R                   R                  X5      $ )z)Set the config only to the user's config.)write_config_managerset)r   r   datas      r   r"   ConfigManager.set!   s    ((,,\@@r   c                 8    U R                   R                  X5      $ )z,Update the config only to the user's config.)r!   update)r   r   new_datas      r   r&   ConfigManager.update%   s    ((//GGr   r   c                     [        5        Vs/ s H,  n[        R                  R                  XR                  5      PM.     sn$ s  snf N)r   ospathjoinconfig_dir_name)r   r   s     r   _default_read_config_path'ConfigManager._default_read_config_path-   s2    ?R?TU?T!Q 4 45?TUUUs   3Awrite_config_dirc                 f    [         R                  R                  [        5       U R                  5      $ r*   )r+   r,   r-   r   r.   r   s    r   _default_write_config_dir'ConfigManager._default_write_config_dir3   s!    ww||.0$2F2FGGr   r!   c                 (    [        U R                  S9$ Nr   )r   r1   r3   s    r   _default_write_config_manager+ConfigManager._default_write_config_manager9   s    $0E0EFFr   c                 4    [        U R                  S9U l        g r7   )r   r1   r!   )r   changes     r   _update_write_config_dir&ConfigManager._update_write_config_dir=   s    $9TEZEZ$[!r   )r!   N)__name__
__module____qualname____firstlineno____doc__r   tagr.   r   r"   r&   r   r   r   r/   r1   r4   r   r   r!   r8   r	   r<   __static_attributes__ r   r   r   r      s    9n3VW[[ \ OAH GI V !V y H !H $$9:#$G %G  \ !\r   r   )rB   os.pathr+   typingtjupyter_core.pathsr   r   	traitletsr   r   r   r   r	   traitlets.configr
   jupyter_server.config_managerr   r   r   rE   r   r   <module>rM      s.    D   F ? ? 0 Q0\' 0\r   