基于anywidget的任何widget的Niivue Jupyter Widget。
项目描述
ipyniivue
基于Niivue的任何widget的Jupyter Widget。
安装
pip install ipyniivue
使用
在Jupyter环境中
from ipyniivue import AnyNiivue
nv = AnyNiivue()
nv.load_volumes([{"path": "images/mni152.nii.gz"}])
nv
查看基本演示了解详细信息。
开发
ipyniivue 使用推荐的 hatchling
构建系统,它可以通过hatch
CLI方便地使用。我们建议全局安装 hatch
(例如,通过 pipx
)并运行 pyproject.toml
中定义的各种命令。hatch
将负责创建并同步一个包含在 pyproject.toml
中定义的所有依赖项的虚拟环境。
命令速查表
所有命令都从项目根目录,在终端中运行
命令 | 操作 |
---|---|
hatch run format |
使用 ruff format . 格式化项目,并使用 ruff --fix . 应用代码检查。 |
运行 hatch run lint |
使用 ruff check . 检查项目代码。 |
运行 hatch run test |
使用 pytest 运行单元测试。 |
或者,您可以通过手动创建虚拟环境和使用 pip
管理安装和依赖来开发 ipyniivue。
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
修改 JavaScript 代码
这是一个 anywidget 项目,这意味着代码库是混合 Python 和 JavaScript 的。JavaScript 部分在 js/
目录下开发,并使用 esbuild 打包代码。每次修改 JavaScript 代码时,您都需要重新构建 src/ipyniivue/static
目录下的文件。这可以通过以下两种方式实现
npm run build
这将一次性构建 JavaScript 代码,或者您可以选择启动开发服务器
npm run dev
这将启动一个开发服务器,您在修改代码时会自动重新构建代码。我们建议使用后一种方法,因为它更方便。
一旦开发服务器运行起来,您就可以启动 JupyterLab 或 VS Code 来开发小部件。完成开发后,您可以使用 Ctrl+C
停止开发服务器。
注意:为了使任何widget在您工作时自动应用更改,请确保已设置
export ANYWIDGET_HMR=1
环境变量。这可以在笔记本的单元格中直接设置,使用%env ANYWIDGET_HMR=1
。
发布流程
- 使用 GitHub Actions 和
release.yml
工作流程自动发布。 - 当推送到仓库的新标签符合
v*
模式时,将触发工作流程。 - 要创建新版本,请从命令行创建标签
git tag -a vX.X.X -m "vX.X.X" git push --follow-tags
- 触发后,工作流程将
- 使用标签版本发布软件包到 PyPI。
- 根据常规提交生成变更日志,并在 GitHub 发布带有变更日志的发布。
变更日志生成
- 我们使用
antfu/changelogithub
生成 GitHub 发布的变更日志。 - 每个变更日志条目都根据常规提交分组和渲染,并建议遵循 常规提交。
- 该工具根据最新发布标签和上一个发布标签之间的提交生成变更日志。
通过遵循此发布流程并利用常规提交,您可以确保项目发布的一致性和信息性。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。