一个用于探索AiiDA数据库的JupyterLab扩展。
项目描述
jlab_aiidatree [IN-DEVELOPMENT]
A JupyterLab extension for exploring AiiDA databases. This is extension is intended to provide similar functionality for exploring graphs as the VS Code AiiDA Explorer extension
- 查看进程
- 按进程状态筛选
- 展开进程及其传入/传出节点
- 查看存储在数据库上的节点属性
- 使用D3 Graph可视化节点图
- 使用ThreeJS可视化StructureData
此扩展由一个名为 jlab_aiidatree
的Python包(服务器扩展)和一个名为 jlab_aiidatree
的NPM包(前端扩展)组成。
安装
要安装扩展,执行
pip install jlab_aiidatree
或与aiida-core一起使用
pip install jlab_aiidatree[aiida]
reentry scan
用法
连接到AiiDA
您可以通过以下两种方式之一连接到AiiDA实例
- 直接使用与jupyterlab(默认)安装在同一环境中的
aiida-core
。 - 通过提供AiiDA REST API的AiiDA实例。
要启动AiiDA REST服务器,首先必须使用带有rest
额外依赖项安装aiida-core
。
pip install aiida-core[rest]~=1.6
reentry scan
最好将它安装在与您的jupyterlab安装不同的环境中,以避免依赖冲突。
然后您可以启动REST服务器
$ verdi restapi -H 127.0.0.5 -P 6789
* REST API running on http://127.0.0.5:6789/api/v4
要连接到此服务器,只需将rest_url
设置更改为此URL
:::{重要} URL 与 JupyterLab 的服务器端连接,即您托管它的位置,而不仅仅是您的本地机器。 ::
卸载
要删除扩展,请执行
pip uninstall jlab_aiidatree
要求
- JupyterLab >= 3.0
故障排除
如果您看到前端扩展,但它不起作用,请检查服务器扩展是否启用
jupyter server extension list
如果服务器扩展已安装并启用,但您看不到前端扩展,请检查前端扩展是否已安装
jupyter labextension list
即将推出的功能
- 查看计算机和附加代码
- 查看组和附加节点
贡献
开发安装
注意:您将需要 NodeJS 来构建扩展包,例如
conda create -n jupyterlab-ext --override-channels --strict-channel-priority -c conda-forge -c anaconda jupyterlab=3 nodejs jupyter-packaging aiida-core~=1.6
conda activate jupyterlab-ext
reentry scan
jlpm
命令是 JupyterLab 的固定版本 yarn,它是与 JupyterLab 一起安装的。您可以使用 yarn
或 npm
代替下面的 jlpm
。
# Clone the repo to your local environment
# Change directory to the jlab_aiidatree directory
# Install package in development mode
pip install -e .
# 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 jlab_aiidatree
# 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
开发卸载
# Server extension must be manually disabled in develop mode
jupyter server extension disable jlab_aiidatree
pip uninstall jlab_aiidatree
在开发模式下,您还需要删除由 jupyter labextension develop
命令创建的符号链接。要找到其位置,您可以运行 jupyter labextension list
以确定 labextensions
文件夹的位置。然后您可以从该文件夹中删除名为 jlab_aiidatree
的符号链接。
部署
-
更新
package.json
中的版本键 -
重新构建包:
jlpm run build
-
确保所有代码审查和测试都通过
-
构建发行版
pip install build rm -rf dist python -m build -s python -m build
-
使用
twine
上传到 PyPIpip install twine twine upload --skip-existing dist/*