浏览代码

wip integrate into python build

Steven Silvester 8 年之前
父节点
当前提交
4f41983024
共有 4 个文件被更改,包括 19 次插入15 次删除
  1. 8 9
      jupyterlab/entries.py
  2. 3 3
      package.json
  3. 7 2
      setup.py
  4. 1 1
      setupbase.py

+ 8 - 9
jupyterlab/entries.py

@@ -7,6 +7,7 @@ import json
 import os
 from os import path as osp
 from os.path import join as pjoin
+import sys
 from subprocess import check_call, check_output
 import shutil
 import tarfile
@@ -21,13 +22,14 @@ pkg_path = pjoin(build_dir, 'package.json')
 config_dir = pjoin(ENV_CONFIG_PATH[0], 'labconfig')
 
 
-def install_extension(extension):
+def install_extension():
     """Install an extension package into JupyterLab.
 
     Follows the semantics of https://docs.npmjs.com/cli/install.
 
     The extension is first validated.
     """
+    extension = sys.argv[-1]
     tar_name, pkg_name = validate_extension(extension)
     path = pjoin(cache_dir, tar_name)
     check_call(['npm', 'install', '--save', path], cwd=build_dir)
@@ -38,9 +40,10 @@ def install_extension(extension):
         json.dump(data, fid)
 
 
-def uninstall_extension(extension):
+def uninstall_extension():
     """Uninstall an extension by name.
     """
+    extension = sys.argv[-1]
     data = _read_package()
     data['jupyterlab']['extensions'].remove(extension)
     del data['dependencies'][extension]
@@ -80,12 +83,13 @@ def validate_extension(extension):
     return name, data['name']
 
 
-def link_extension(package):
+def link_extension():
     """Link a package into JupyterLab
 
     Follows the semantics of https://docs.npmjs.com/cli/link.
     """
-    check_call(['npm', 'link', package], cwd=build_dir)
+    extension = sys.argv[-1]
+    check_call(['npm', 'link', extension], cwd=build_dir)
 
 
 def build():
@@ -138,8 +142,3 @@ def _read_package():
     _ensure_package()
     with open(pkg_path) as fid:
         return json.load(fid)
-
-
-if __name__ == '__main__':
-    install_extension('~/workspace/jupyter/jupyterlab_geojson/labextension')
-    build()

+ 3 - 3
package.json

@@ -2,9 +2,9 @@
   "private": true,
   "scripts": {
     "install": "lerna bootstrap --hoist",
-    "build": "lerna run build",
+    "build": "cd packages/all-packages && npm run build",
     "build:examples": "lerna run build --scope \"@jupyterlab/example-*\"",
-    "build:main": "cd jupyterlab && npm run build",
+    "build:main": "npm run build && cd jupyterlab && npm run build",
     "build:src": "lerna run build --scope \"@jupyterlab/!(test-|example-)*\"",
     "build:test": "lerna run build:test",
     "clean": "node scripts/clean-packages.js examples packages",
@@ -13,7 +13,7 @@
     "clean:src": "node scripts/clean-packages.js packages",
     "clean:tests": "lerna run clean --scope \"@jupyterlab/test-*\"",
     "coverage": "lerna run coverage --stream",
-    "test": "cd packages/extension-builder && npm test && cd ../../test && npm test",
+    "test": "cd test && npm test",
     "test:services": "cd packages/services && npm run build:examples && npm test && npm run test:integration",
     "test:chrome": "lerna run test:chrome --stream",
     "test:firefox": "lerna run test:firefox --stream",

+ 7 - 2
setup.py

@@ -133,8 +133,13 @@ if 'setuptools' in sys.modules:
     # force entrypoints with setuptools (needed for Windows, unconditional because of wheels)
     setup_args['entry_points'] = {
         'console_scripts': [
-            'jupyter-lab = jupyterlab.labapp:main',
-            'jupyter-labextension = jupyterlab.labextensions:main',
+
+            'jupyterlab = jupyterlab.labapp:main',
+            'jupyterlab-install_extension = jupyterlab.entries:install_extension',
+            'jupyterlab-uninstall_extension = jupyterlab.entries:uninstall_extension',
+            'jupyterlab-list_extensions = jupyterlab.entries:list_extensions',
+            'jupyterlab-build = jupyterlab.entries:build',
+            'jupyterlab-link_extension = jupyterlab.entries:link_extension',
         ]
     }
     setup_args.pop('scripts', None)

+ 1 - 1
setupbase.py

@@ -131,7 +131,7 @@ class NPM(Command):
         log.info("Installing build dependencies with npm. This may take a while...")
         main = os.path.join(here, 'jupyterlab')
         run(['npm', 'install'], cwd=here)
-        run(['npm', 'run', 'build'], cwd=main)
+        run(['npm', 'run', 'build:main'], cwd=here)
 
         for t in self.targets:
             if not os.path.exists(t):