config.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. """Extension config."""
  2. from jupyter_server.services.config.manager import ConfigManager
  3. DEFAULT_SECTION_NAME = "jupyter_server_config"
  4. class ExtensionConfigManager(ConfigManager):
  5. """A manager class to interface with Jupyter Server Extension config
  6. found in a `config.d` folder. It is assumed that all configuration
  7. files in this directory are JSON files.
  8. """
  9. def get_jpserver_extensions(self, section_name=DEFAULT_SECTION_NAME):
  10. """Return the jpserver_extensions field from all
  11. config files found."""
  12. data = self.get(section_name)
  13. return data.get("ServerApp", {}).get("jpserver_extensions", {})
  14. def enabled(self, name, section_name=DEFAULT_SECTION_NAME, include_root=True):
  15. """Is the extension enabled?"""
  16. extensions = self.get_jpserver_extensions(section_name)
  17. try:
  18. return extensions[name]
  19. except KeyError:
  20. return False
  21. def enable(self, name):
  22. """Enable an extension by name."""
  23. data = {"ServerApp": {"jpserver_extensions": {name: True}}}
  24. self.update(name, data)
  25. def disable(self, name):
  26. """Disable an extension by name."""
  27. data = {"ServerApp": {"jpserver_extensions": {name: False}}}
  28. self.update(name, data)