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 的固定版本。您可以使用 yarn
或 npm
替代下面的 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 group 与 Quansight 合作创建的。
我们欢迎贡献!在您贡献之前,请签署并提交此 贡献者许可协议 (CLA)。此 CLA 的目的是保护本项目的所有用户。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
ksmm-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 692f0bb8a5e5e5b36278cf5dde18d71e61c52bcde2ded26d50af004408d81729 |
|
MD5 | 5e41a1e393ae6b99f55ed8e14ecbed5b |
|
BLAKE2b-256 | 23d1dc2a1a5003dce7814c739989658797d4af63d91316a82a699a0a2bb358ca |
ksmm-1.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 76877e9045f749f3f791a7983130fd2ac30fe94fd9d04a5376de3a9c5fd2c8cd |
|
MD5 | bd894d2a0641380d4623ae52c25c885f |
|
BLAKE2b-256 | 21b11f94bbf440a704dc55d29076f2fb636f9b5d5d9571fab9dc49addebc2e1f |