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)
 |