Browse Source

Enable installing by path and name

Steven Silvester 8 years ago
parent
commit
8ae34c6e0c
3 changed files with 23 additions and 22 deletions
  1. 0 2
      jupyterlab/__init__.py
  2. 1 1
      jupyterlab/labapp.py
  3. 22 19
      jupyterlab/labextensions.py

+ 0 - 2
jupyterlab/__init__.py

@@ -12,8 +12,6 @@ from jinja2 import FileSystemLoader
 from notebook.utils import url_path_join as ujoin
 
 
-
-
 #-----------------------------------------------------------------------------
 # Module globals
 #-----------------------------------------------------------------------------

+ 1 - 1
jupyterlab/labapp.py

@@ -25,7 +25,7 @@ class LabApp(NotebookApp):
     @property
     def labextensions(self):
         extensions = []
-        config_dirs = [os.path.join(p, 'labconfig') for p in 
+        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)

+ 22 - 19
jupyterlab/labextensions.py

@@ -90,7 +90,7 @@ def check_labextension(files, user=False, prefix=None, labextensions_dir=None, s
     return all(os.path.exists(pjoin(labext, f)) for f in files)
 
 
-def install_labextension(path, name, overwrite=False, symlink=False,
+def install_labextension(path, name='', overwrite=False, symlink=False,
                         user=False, prefix=None, labextensions_dir=None,
                         logger=None, sys_prefix=False
                         ):
@@ -104,7 +104,7 @@ def install_labextension(path, name, overwrite=False, symlink=False,
     ----------
     path : path to file, directory, zip or tarball archive, or URL to install
         Archives (zip or tarballs) will be extracted into the labextensions directory.
-    name : str [optional]
+    name : str
         name the labextension is installed to.  For example, if name is 'foo', then
         the source file will be installed to 'labextensions/foo'.
     overwrite : bool [default: False]
@@ -201,7 +201,7 @@ def install_labextension_python(module, overwrite=False, symlink=False,
         if logger:
             logger.info("Installing %s -> %s" % (src, name))
         full_dest = install_labextension(
-            src, name, overwrite=overwrite, symlink=symlink,
+            src, name=name, overwrite=overwrite, symlink=symlink,
             user=user, sys_prefix=sys_prefix, prefix=prefix, labextensions_dir=labextensions_dir,
             logger=logger
             )
@@ -243,7 +243,8 @@ def uninstall_labextension(name, user=False, sys_prefix=False, prefix=None,
             shutil.rmtree(full_dest)
         else:
             os.remove(full_dest)
-    disable_labextension(name)
+    disable_labextension(name, user=user, sys_prefix=sys_prefix,
+                        logger=logger)
 
 
 def uninstall_labextension_python(module,
@@ -257,7 +258,7 @@ def uninstall_labextension_python(module,
     for labext in labexts:
         name = labext['name']
         if logger:
-            logger.info("Uninstalling {} {}".format(name))
+            logger.info("Uninstalling {}".format(name))
         uninstall_labextension(name, user=user, sys_prefix=sys_prefix, 
             prefix=prefix, labextensions_dir=labextensions_dir, logger=logger)
 
@@ -610,7 +611,8 @@ class InstallLabExtensionApp(BaseLabExtensionApp):
     """
     
     examples = """
-    jupyter labextension install /path/to/myextension
+    jupyter labextension install /path/to/myextension name
+    jupyter labextension install --py extensionPyPackage
     """
     aliases = aliases
     flags = flags
@@ -621,7 +623,6 @@ class InstallLabExtensionApp(BaseLabExtensionApp):
     prefix = Unicode('', config=True, help="Installation prefix")
     labextensions_dir = Unicode('', config=True,
            help="Full path to labextensions dir (probably use prefix or user)")
-    name = Unicode('', config=True, help="The name of the extension")
 
     def _config_file_name_default(self):
         """The default config file name."""
@@ -629,16 +630,18 @@ class InstallLabExtensionApp(BaseLabExtensionApp):
     
     def install_extensions(self):
         """Perform the installation of labextension(s)"""
-        if len(self.extra_args)>1:
-            raise ValueError("Only one labextension allowed at a time. "
-                         "Call multiple times to install multiple extensions.")
-
         if self.python:
+            if len(self.extra_args) > 1:
+                raise ValueError("Only one labextension allowed at a time. "
+                         "Call multiple times to install multiple extensions.")
             install = install_labextension_python
             kwargs = {}
         else:
+            if len(self.extra_args) > 2:
+                raise ValueError("Only one labextension allowed at a time. "
+                         "Call multiple times to install multiple extensions.")
             install = install_labextension
-            kwargs = {'name': self.name}
+            kwargs = {'name': self.extra_args[1]}
         
         full_dests = install(self.extra_args[0],
                              overwrite=self.overwrite,
@@ -656,7 +659,7 @@ class InstallLabExtensionApp(BaseLabExtensionApp):
                 u"\nTo enable this labextension in the browser every time"
                 " JupyterLab loads:\n\n"
                 "      jupyter labextension enable {}{}{}{}\n".format(
-                    self.extra_args[0] if self.python else self.name,
+                    self.extra_args[0] if self.python else self.extra_args[1],
                     " --user" if self.user else "",
                     " --py" if self.python else "",
                     " --sys-prefix" if self.sys_prefix else ""
@@ -681,26 +684,26 @@ class UninstallLabExtensionApp(BaseLabExtensionApp):
     
     Usage
     
-        jupyter labextension uninstall path/url path/url/entrypoint
-        jupyter labextension uninstall --py pythonPackageName
+        jupyter labextension uninstall name
+        jupyter labextension uninstall --py extensionPyPackage
     
     This uninstalls a labextension.
     """
     
     examples = """
-    jupyter labextension uninstall dest/dir dest/dir/extensionjs
+    jupyter labextension uninstall name
     jupyter labextension uninstall --py extensionPyPackage
     """
     
     aliases = {
         "prefix" : "UninstallLabExtensionApp.prefix",
         "labextensions" : "UninstallLabExtensionApp.labextensions_dir",
-        "require": "UninstallLabExtensionApp.require",
+        "name": "UninstallLabExtensionApp.name",
     }
     
     prefix = Unicode('', config=True, help="Installation prefix")
     labextensions_dir = Unicode('', config=True, help="Full path to labextensions dir (probably use prefix or user)")
-    require = Unicode('', config=True, help="require.js module to load.")
+    name = Unicode('', config=True, help="The name of the extension.")
     
     def _config_file_name_default(self):
         """The default config file name."""
@@ -726,7 +729,7 @@ class UninstallLabExtensionApp(BaseLabExtensionApp):
             uninstall_labextension_python(self.extra_args[0], **kwargs)
         else:
             if self.require:
-                kwargs['require'] = self.require
+                kwargs['name'] = self.name
             uninstall_labextension(self.extra_args[0], **kwargs)
     
     def start(self):