跳转到主要内容

Cate JupyterLab扩展

项目描述

cate_jl_ext

Github Actions Status Cate JupyterLab扩展

此扩展允许在JupyterLab中运行Cate App。

该扩展由一个名为 cate_jl_ext 的Python包(用于服务器扩展)和一个名为 cate-jl-ext 的NPM包(用于前端扩展)组成。


注意

此扩展仍然是实验性的,尚未打包或部署。有关开发安装,请参考下面的 开发 部分。


需求

  • JupyterLab >= 3.0
  • cate >= 3.1.4

安装

要安装扩展,请执行

pip install cate_jl_ext

卸载

要删除扩展,请执行

pip uninstall cate_jl_ext

故障排除

如果您看到前端扩展,但它没有工作,请检查服务器扩展是否已启用

jupyter server extension list

如果服务器扩展已安装并启用,但您没有看到前端扩展,请检查前端扩展是否已安装

jupyter labextension list

开发

设置环境

请确保在专用Python环境中有一个来自 cate 的源安装。

cd ${projects}
git clone https://github.com/CCI-Tools/cate.git
cd cate
mamba env create

激活 cate 环境,并以可编辑(开发)模式安装 cate

conda activate cate
pip install -ve .

使用所需包更新环境,用于构建和运行 JupyterLab 扩展。

注意,我们开发环境中的 jupyterlab 版本应与目标系统的版本相匹配。我们还安装了 jupyter-server-proxy

mamba install -c conda-forge -c nodefaults jupyterlab jupyter-server-proxy

同时安装一些打包和构建工具

mamba install -c conda-forge -c nodefaults nodejs jupyter-packaging
pip install build

有关这些工具的使用,请参阅 JupyterLab 扩展教程

从源安装扩展

确保 xcube 环境已激活

conda activate xcube

cate 源文件夹旁边克隆 Cate JupyterLab 扩展仓库

cd ${projects}
git clone https://github.com/CCI-Tools/cate-jl-ext.git
cd cate-jl-ext

安装初始项目依赖项,并将扩展安装到 JupyterLab 环境中。将扩展的前端部分复制到 JupyterLab。每次我们对更改进行更改以将其复制到 JupyterLab 时,都可以再次运行此 pip 安装命令。

pip install -ve .

从 JupyterLab 到我们的源目录创建一个符号链接。这意味着我们的更改将自动在 JupyterLab 中可用

jupyter labextension develop --overwrite .

如果成功,我们可以运行 JupyterLab 并检查扩展是否按预期工作

jupyter lab

更改后构建

运行以下命令以重新构建扩展。这将在更改 package.json 或前端 TypeScript 文件和其他资源后需要。

jlpm run build

如果您希望避免每次更改后构建,您可以在另一个终端中运行以下命令。

jlpm run watch

这将自动编译 TypeScript 文件,在它们更改和保存时。

贡献

开发安装

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

jlpm 命令是 JupyterLab 随附的 yarn 的固定版本。您可以使用 yarnnpm 代替下面的 jlpm

# Clone the repo to your local environment
# Change directory to the cate_jl_ext directory
# Install package in development mode
pip install -e ".[test]"
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Server extension must be manually installed in develop mode
jupyter server extension enable cate_jl_ext
# Rebuild extension Typescript source after making changes
jlpm build

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

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

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

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

jupyter lab build --minimize=False

开发卸载

# Server extension must be manually disabled in develop mode
jupyter server extension disable cate_jl_ext
pip uninstall cate_jl_ext

在开发模式下,您还需要删除由 jupyter labextension develop 命令创建的符号链接。要找到其位置,您可以通过运行 jupyter labextension list 来确定 labextensions 文件夹的位置。然后您可以在该文件夹中删除名为 cate-jl-ext 的符号链接。

测试扩展

服务器测试

此扩展使用 Pytest 进行 Python 代码测试。

安装测试依赖项(只需安装一次)

pip install -e ".[test]"
# Each time you install the Python package, you need to restore the front-end extension link
jupyter labextension develop . --overwrite

要执行它们,请运行

pytest -vv -r ap --cov cate_jl_ext

前端测试

此扩展使用 Jest 进行 JavaScript 代码测试。

要执行它们,请执行

jlpm
jlpm test

集成测试

此扩展使用 Playwright 进行集成测试(也称为用户级测试)。更确切地说,JupyterLab 辅助程序 Galata 用于处理在 JupyterLab 中测试扩展。

更多详细信息请参阅 ui-tests 的 README。

打包扩展

请参阅 RELEASE

项目详情


下载文件

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

源代码分发

cate_jl_ext-0.1.2.tar.gz (277.9 kB 查看哈希值)

上传时间 源代码

构建分发

cate_jl_ext-0.1.2-py3-none-any.whl (95.5 kB 查看哈希值)

上传时间 Python 3

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