|
@@ -8,9 +8,26 @@
|
|
|
import os
|
|
|
from jupyter_core.paths import jupyter_config_path, jupyter_path
|
|
|
from notebook.notebookapp import NotebookApp
|
|
|
-from traitlets import List, Unicode
|
|
|
+from traitlets import List, Unicode, default
|
|
|
from traitlets.config.manager import BaseJSONConfigManager
|
|
|
|
|
|
+def get_labextensions(parent=None):
|
|
|
+ """Get the list of enabled lab extensions"""
|
|
|
+ extensions = []
|
|
|
+ config_dirs = [os.path.join(p, 'labconfig') for p in
|
|
|
+ jupyter_config_path()]
|
|
|
+ for config_dir in config_dirs:
|
|
|
+ cm = BaseJSONConfigManager(parent=parent, config_dir=config_dir)
|
|
|
+ data = cm.get("jupyterlab_config")
|
|
|
+ labextensions = (
|
|
|
+ data.setdefault("LabApp", {})
|
|
|
+ .setdefault("labextensions", {})
|
|
|
+ )
|
|
|
+ for name, enabled in labextensions.items():
|
|
|
+ if enabled:
|
|
|
+ extensions.append(name)
|
|
|
+ return extensions
|
|
|
+
|
|
|
|
|
|
class LabApp(NotebookApp):
|
|
|
|
|
@@ -21,23 +38,12 @@ class LabApp(NotebookApp):
|
|
|
extra_labextensions_path = List(Unicode(), config=True,
|
|
|
help="""extra paths to look for JupyterLab extensions"""
|
|
|
)
|
|
|
-
|
|
|
- @property
|
|
|
- def labextensions(self):
|
|
|
- extensions = []
|
|
|
- config_dirs = [os.path.join(p, 'labconfig') for p in
|
|
|
- jupyter_config_path()]
|
|
|
- for config_dir in config_dirs:
|
|
|
- cm = BaseJSONConfigManager(parent=self, config_dir=config_dir)
|
|
|
- data = cm.get("jupyterlab_config")
|
|
|
- labextensions = (
|
|
|
- data.setdefault("LabApp", {})
|
|
|
- .setdefault("labextensions", {})
|
|
|
- )
|
|
|
- for name, enabled in labextensions.items():
|
|
|
- if enabled:
|
|
|
- extensions.append(name)
|
|
|
- return extensions
|
|
|
+
|
|
|
+ labextensions = List(Unicode())
|
|
|
+
|
|
|
+ @default('labextensions')
|
|
|
+ def _labextensions_default(self):
|
|
|
+ return get_labextensions(parent=self)
|
|
|
|
|
|
@property
|
|
|
def labextensions_path(self):
|