diff --git a/notebook/nbextensions.py b/notebook/nbextensions.py index 9f259daf9..b3b28f380 100644 --- a/notebook/nbextensions.py +++ b/notebook/nbextensions.py @@ -244,7 +244,7 @@ def install_nbextension_python(module, overwrite=False, symlink=False, return full_dests -def uninstall_nbextension(dest, require, user=False, sys_prefix=False, prefix=None, +def uninstall_nbextension(dest, require=None, user=False, sys_prefix=False, prefix=None, nbextensions_dir=None, logger=None): """Uninstall a Javascript extension of the notebook @@ -259,8 +259,9 @@ def uninstall_nbextension(dest, require, user=False, sys_prefix=False, prefix=No name the nbextension is installed to. For example, if destination is 'foo', then the source file will be installed to 'nbextensions/foo', regardless of the source name. This cannot be specified if an archive is given as the source. - require : str - require.js path used to load the extension + require : str [optional] + require.js path used to load the extension. + If specified, frontend config loading extension will be removed. user : bool [default: False] Whether to install to the user's nbextensions directory. Otherwise do a system-wide install (e.g. /usr/local/share/jupyter/nbextensions). @@ -287,8 +288,9 @@ def uninstall_nbextension(dest, require, user=False, sys_prefix=False, prefix=No # doesn't exist. config_dir = os.path.join(_get_config_dir(user=user, sys_prefix=sys_prefix), 'nbconfig') cm = BaseJSONConfigManager(config_dir=config_dir) - for section in NBCONFIG_SECTIONS: - cm.update(section, {"load_extensions": {require: None}}) + if require: + for section in NBCONFIG_SECTIONS: + cm.update(section, {"load_extensions": {require: None}}) def uninstall_nbextension_python(module, @@ -743,12 +745,16 @@ class UninstallNBExtensionApp(BaseNBExtensionApp): jupyter nbextension uninstall dest/dir dest/dir/extensionjs jupyter nbextension uninstall --py extensionPyPackage """ - aliases = {'section': 'ToggleNBExtensionApp.section'} + aliases = { + "prefix" : "UninstallNBExtensionApp.prefix", + "nbextensions" : "UninstallNBExtensionApp.nbextensions_dir", + "require": "UninstallNBExtensionApp.require", + } prefix = Unicode('', config=True, help="Installation prefix") nbextensions_dir = Unicode('', config=True, help="Full path to nbextensions dir (probably use prefix or user)") - destination = Unicode('', config=True, help="Destination for the copy or symlink") + require = Unicode('', config=True, help="require.js module to load.") def _config_file_name_default(self): """The default config file name.""" @@ -764,16 +770,18 @@ class UninstallNBExtensionApp(BaseNBExtensionApp): 'logger': self.log } - arg_count = 1 if self.python else 2 - if len(self.extra_args)>arg_count: + arg_count = 1 + if len(self.extra_args) > arg_count: raise ValueError("only one nbextension allowed at a time. Call multiple times to uninstall multiple extensions.") - if len(self.extra_args)