跳转到主要内容

JupyterLab中管理Kernelspecs的扩展

项目描述

内核规范管理器 JupyterLab 扩展

此 JupyterLab 扩展允许用户在 JupyterLab 中管理内核规范。

ksmm 是一个临时名称,最初代表 内核规范管理器,目前随软件一起发布

  • 基于参数化模板创建内核规范。
  • 内核规范编辑:名称、属性。
  • 内核复制。
  • 内核删除。

上下文

在大型分布式系统中,通常希望参数化内核并选择远程环境中的参数,如CPU数量、内存限制、GPU的存在。甚至可以在环境变量中设置其他参数。

这目前需要使用命令行为 jupyter 创建新的内核规范,这可能是一个繁琐且复杂的任务。

修改现有的内核规范也不总是有效,因为它们在每个笔记本上都被缓存。

这是一个尝试提供基于 json-schema 和模板的 UI,以便最终用户可以轻松创建、复制和修改内核规范,而无需深入了解内部细节。

要求

  • Jupyterlab >= 4.0

安装

pip install ksmm

接下来,您需要安装一些 内核规范模板。例如,首先添加 python-template-1 内核规范。

jupyter kernelspec install ./examples/python-template-1/

要列出现有内核规范,请运行 jupyter kernelspec list .

贡献

开发安装

注意:您需要 NodeJS 来构建扩展包。

jlpm 命令是 JupyterLab 随软件一起安装的 yarn 的固定版本。您可以使用 yarnnpm 替代下面的 jlpm

# Clone the repo to your local environment
# Change directory to the jupyterlab_pyflyby directory
# Install package in development mode
pip install -e .
# Link your development version of the extension with JupyterLab
jupyter-labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm run build

您可以在不同的终端中同时监视源目录并运行 JupyterLab,以监视扩展的源代码更改并自动重新构建扩展。

# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm run watch
# Run JupyterLab in another terminal
jupyter lab

在监视命令运行时,每次保存的更改都将立即在本地构建并可供正在运行的 JupyterLab 使用。刷新 JupyterLab 以在浏览器中加载更改(您可能需要等待几秒钟,直到扩展被重新构建)。

默认情况下,jlpm run build 命令为该扩展生成源映射,以便更容易使用浏览器开发工具进行调试。要同时为 JupyterLab 核心扩展生成源映射,请运行以下命令

jupyter lab build --minimize=False

关于内核规范模板

您的系统管理员可以为您创建内核规范模板。作为用户,如果您点击模板卡的拾取图标,将提示您输入内核规范参数。

当您点击 创建内核规范 按钮时,将创建一个新的内核规范。

这是一个内核规范模板的示例。应将 metadata/template/tpl 篇章包含在符合 Json Schema 的结构中。您可以通过浏览 react-jsonschema-form 获取示例。

您可以使用 metadata/template/mapping 段落来创建可视化映射(例如,Small 将映射到 102400)。example/python-template-1 包含了一个示例。要将此示例模板安装到您的环境中,您需要运行 jupyter kernelspec install ./examples/python-template-1(添加 --user 以在用户空间中安装)。

点击查看内核规范示例。
{
  "argv": [
    "python",
    "-m",
    "ipykernel_launcher",
    "-f",
    "{connection_file}",
    "--cache-size={cache_size}",
    "--matplotlib={matplotlib}"
  ],
  "display_name": "Python 3.8 Template 1",
  "language": "python",
  "metadata": {
    "template": {
      "tpl": {
        "argv": [
          "python",
          "-m",
          "ipykernel_launcher",
          "-f",
          "{connection_file}",
          "--cache-size={cache_size_map}",
          "--matplotlib={matplotlib}",
          "--logfile={logfile}",
          "--Kernel._poll_interval={poll_interval}"
        ],
        "display_name": "Python cache_size {cache_size_map} matplotlib {matplotlib}"
      },
      "parameters": {
        "poll_interval": {
          "type": "number",
          "minimum": 0.01,
          "maximum": 1,
          "multipleOf": 0.01,
          "title": "Kernel pool interval in seconds",
          "default": 0.01
        },
        "cache_size": {
          "type": "integer",
          "title": "Set the size of the cache",
          "default": "Medium",
          "enum": ["Small", "Medium", "Big"]
        },
        "matplotlib": {
          "type": "string",
          "title": "Configure matplotlib for interactive use with the default matplotlib backend",
          "default": "widget",
          "enum": [
            "auto",
            "agg",
            "gtk",
            "gtk3",
            "inline",
            "ipympl",
            "nbagg",
            "notebook",
            "osx",
            "pdf",
            "ps",
            "qt",
            "qt4",
            "qt5",
            "svg",
            "tk",
            "widget",
            "wx"
          ]
        },
        "logfile": {
          "type": "string",
          "title": "Set the path for the logfile",
          "default": "/tmp/kernel.out"
        }
      },
      "mapping": {
        "cache_size_map": {
          "cache_size": {
            "Small": "102400",
            "Medium": "512000",
            "Big": "1048576000"
          }
        }
      }
    }
  }
}

常规设置

启动参数

发布

要发布版本,您需要手动增加 package.json 文件中的版本号,例如查看此 diff。

 {
   "name": "@deshaw/jupyterlab-ksmm",
-  "version": "0.1.4",
+  "version": "0.1.5",
   "description": "An extension to manage Kernelspecs from JupyterLab",
   "keywords": [
     "jupyter",

在增加版本号时,请遵循 语义化版本控制 规则。

历史

这是由 D. E. Shaw groupQuansight 合作创建的。

D. E. Shaw Logo

我们欢迎贡献!在您贡献之前,请签署并提交此 贡献者许可协议 (CLA)。此 CLA 的目的是保护本项目的所有用户。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

ksmm-1.0.0.tar.gz (770.6 kB 查看哈希值)

上传时间 源代码

构建分发

ksmm-1.0.0-py3-none-any.whl (300.4 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面