You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
"""Extension config."""
|
|
|
|
from jupyter_server.services.config.manager import ConfigManager
|
|
|
|
DEFAULT_SECTION_NAME = "jupyter_server_config"
|
|
|
|
|
|
class ExtensionConfigManager(ConfigManager):
|
|
"""A manager class to interface with Jupyter Server Extension config
|
|
found in a `config.d` folder. It is assumed that all configuration
|
|
files in this directory are JSON files.
|
|
"""
|
|
|
|
def get_jpserver_extensions(self, section_name=DEFAULT_SECTION_NAME):
|
|
"""Return the jpserver_extensions field from all
|
|
config files found."""
|
|
data = self.get(section_name)
|
|
return data.get("ServerApp", {}).get("jpserver_extensions", {})
|
|
|
|
def enabled(self, name, section_name=DEFAULT_SECTION_NAME, include_root=True):
|
|
"""Is the extension enabled?"""
|
|
extensions = self.get_jpserver_extensions(section_name)
|
|
try:
|
|
return extensions[name]
|
|
except KeyError:
|
|
return False
|
|
|
|
def enable(self, name):
|
|
"""Enable an extension by name."""
|
|
data = {"ServerApp": {"jpserver_extensions": {name: True}}}
|
|
self.update(name, data)
|
|
|
|
def disable(self, name):
|
|
"""Disable an extension by name."""
|
|
data = {"ServerApp": {"jpserver_extensions": {name: False}}}
|
|
self.update(name, data)
|