Merge pull request #9 from bollwyvl/nbext-pain-ceci-nest-pas-une-nbextension

cleaning up references to nbextensions in serverextensions
This commit is contained in:
Jonathan Frederic 2016-03-07 09:53:39 -08:00
commit 5b6eb13d3b

View File

@ -12,7 +12,7 @@ import sys
from jupyter_core.paths import jupyter_config_path from jupyter_core.paths import jupyter_config_path
from ._version import __version__ from ._version import __version__
from .nbextensions import ( from .nbextensions import (
BaseNBExtensionApp, ToggleNBExtensionApp, _get_config_dir, BaseNBExtensionApp, _get_config_dir,
GREEN_ENABLED, RED_DISABLED GREEN_ENABLED, RED_DISABLED
) )
@ -28,22 +28,29 @@ class ArgumentConflict(ValueError):
pass pass
def toggle_serverextension_python(import_name, enabled=None, parent=None, user=False, sys_prefix=False): def toggle_serverextension_python(import_name, enabled=None, parent=None,
user=False, sys_prefix=False):
"""Toggle a server extension. """Toggle a server extension.
By default, toggles the extension in the system-wide Jupyter configuration
location (e.g. /usr/local/etc/jupyter).
Parameters Parameters
---------- ----------
import_name : str import_name : str
Python import name of the extension Importable Python module (dotted-notation) exposing the magic-named
`load_jupyter_server_extension` function
enabled : bool [default: None] enabled : bool [default: None]
Toggle state for the extension. Set to None to toggle, True to enable, Toggle state for the extension. Set to None to toggle, True to enable,
and False to disable the extension. and False to disable the extension.
parent : Configurable [default: None] parent : Configurable [default: None]
user : bool [default: False] user : bool [default: False]
Whether to install to the user's nbextensions directory. Toggle in the user's configuration location (e.g. ~/.jupyter).
Otherwise do a system-wide install (e.g. /usr/local/share/jupyter/nbextensions). sys_prefix : bool [default: False]
sys_prefix : bool [default: False]""" Toggle in the current Python environment's configuration location
(e.g. ~/.envs/my-env/etc/jupyter).
"""
config_dir = _get_config_dir(user=user, sys_prefix=sys_prefix) config_dir = _get_config_dir(user=user, sys_prefix=sys_prefix)
cm = BaseJSONConfigManager(parent=parent, config_dir=config_dir) cm = BaseJSONConfigManager(parent=parent, config_dir=config_dir)
cfg = cm.get("jupyter_notebook_config") cfg = cm.get("jupyter_notebook_config")
@ -78,7 +85,7 @@ flags = {
"sys-prefix" : ({ "sys-prefix" : ({
"ToggleServerExtensionApp" : { "ToggleServerExtensionApp" : {
"sys_prefix" : True, "sys_prefix" : True,
}}, "Use sys.prefix as the prefix for installing nbextensions" }}, "Use sys.prefix as the prefix for installing server extensions"
), ),
"py" : ({ "py" : ({
"ToggleServerExtensionApp" : { "ToggleServerExtensionApp" : {
@ -88,7 +95,8 @@ flags = {
} }
flags['python'] = flags['py'] flags['python'] = flags['py']
class ToggleServerExtensionApp(ToggleNBExtensionApp):
class ToggleServerExtensionApp(BaseNBExtensionApp):
name = "jupyter serverextension enable/disable" name = "jupyter serverextension enable/disable"
description = "Enable/disable a server extension using frontend configuration files." description = "Enable/disable a server extension using frontend configuration files."
@ -107,7 +115,7 @@ class ToggleServerExtensionApp(ToggleNBExtensionApp):
m, server_exts = _get_server_extension_metadata(package) m, server_exts = _get_server_extension_metadata(package)
for server_ext in server_exts: for server_ext in server_exts:
require = server_ext['require'] require = server_ext['require']
self._toggle_server_extension(require) self.toggle_server_extension(require)
def start(self): def start(self):
@ -158,9 +166,9 @@ class ListServerExtensionsApp(BaseNBExtensionApp):
_examples = """ _examples = """
jupyter serverextension list # list all configured nbextensions jupyter serverextension list # list all configured server extensions
jupyter serverextension enable --py <packagename> # enable all nbextensions in a Python package jupyter serverextension enable --py <packagename> # enable all server extensions in a Python package
jupyter serverextension disable --py <packagename> # disable all nbextensions in a Python package jupyter serverextension disable --py <packagename> # disable all server extensions in a Python package
""" """
@ -195,9 +203,8 @@ main = ServerExtensionApp.launch_instance
def _get_server_extension_metadata(package): def _get_server_extension_metadata(package):
m = __import__(package) m = __import__(package)
if not hasattr(m, '_jupyter_server_extension_paths'): if not hasattr(m, '_jupyter_server_extension_paths'):
raise KeyError('The Python package {} is not a valid server extension'.format(package)) raise KeyError('The Python package {} does not include any valid server extensions'.format(package))
nbexts = m._jupyter_server_extension_paths() return m, m._jupyter_server_extension_paths()
return m, nbexts
if __name__ == '__main__': if __name__ == '__main__':
main() main()