diff --git a/IPython/html/nbextensions.py b/IPython/html/nbextensions.py
index e9a72fd..81fcebb 100644
--- a/IPython/html/nbextensions.py
+++ b/IPython/html/nbextensions.py
@@ -25,6 +25,8 @@ from IPython.utils.path import get_ipython_dir, ensure_dir_exists
from IPython.utils.py3compat import string_types, cast_unicode_py2
from IPython.utils.tempdir import TemporaryDirectory
+class ArgumentConflict(ValueError):
+ pass
# Packagers: modify the next block if you store system-installed nbextensions elsewhere (unlikely)
SYSTEM_NBEXTENSIONS_DIRS = []
@@ -140,7 +142,7 @@ def install_nbextension(files, overwrite=False, symlink=False, user=False, prefi
set verbose=2 for more output, or verbose=0 for silence.
"""
if sum(map(bool, [user, prefix, nbextensions_dir])) > 1:
- raise ValueError("Cannot specify more than one of user, prefix, or nbextensions_dir.")
+ raise ArgumentConflict("Cannot specify more than one of user, prefix, or nbextensions_dir.")
if user:
nbext = pjoin(get_ipython_dir(), u'nbextensions')
else:
@@ -296,10 +298,6 @@ class NBExtensionApp(BaseIPythonApplication):
help="Verbosity level"
)
- def check_install():
- if sum(map(bool, [user, prefix, nbextensions_dir])) > 1:
- raise TraitError("Cannot specify more than one of user, prefix, or nbextensions_dir.")
-
def install_extensions(self):
install_nbextension(self.extra_args,
overwrite=self.overwrite,
@@ -318,8 +316,11 @@ class NBExtensionApp(BaseIPythonApplication):
for ext in os.listdir(nbext):
print(u" %s" % ext)
else:
- self.check_install()
- self.install_extensions()
+ try:
+ self.install_extensions()
+ except ArgumentConflict as e:
+ print(str(e), file=sys.stderr)
+ self.exit(1)
if __name__ == '__main__':