自定义Jupyter小部件库
项目描述
deephaven-ipywidgets
Deephaven社区IPython小部件库
安装
您可以使用pip
进行安装。
如果在嵌入服务器(deephaven-server
)上运行,请使用以下命令安装:
pip install "deephaven-ipywidgets[server]"
这会安装嵌入服务器。
如果您正在连接到运行在其他地方的服务器(pydeephaven
),请使用以下命令安装:
pip install "deephaven-ipywidgets[client]"
如果您正在使用 Jupyter Notebook 5.2 或更早版本,可能还需要启用 nbextension。
jupyter nbextension enable --py [--sys-prefix|--user|--system] deephaven-ipywidgets
使用方法
启动服务器
首先,如果您使用的是嵌入式服务器,您需要启动Deephaven 服务器。
# Start up the Deephaven Server on port 8080 with token `iris`
from deephaven_server import Server
s = Server(port=8080, jvm_args=["-Dauthentication.psk=iris"])
s.start()
显示表格
将表格传递给 DeephavenWidget
以显示表格
# Create a table and display it
from deephaven import empty_table
from deephaven_ipywidgets import DeephavenWidget
t = empty_table(1000).update("x=i")
display(DeephavenWidget(t))
您还可以传递您希望小部件的大小
# Specify a size for the table
display(DeephavenWidget(t, width=100, height=250))
连接到远程服务器
如果您使用客户端连接到已运行的服务器,请创建一个 pydeephaven
会话。有关更多信息,请参阅pydeephaven 文档。
from pydeephaven import Session
client_session = Session(
host="deephaven.local",
port=10000,
auth_type="io.deephaven.authentication.psk.PskAuthenticationHandler",
auth_token="YOUR_PASSWORD_HERE",
)
从远程服务器显示表格
会话可用于在服务器上创建对象(如表格),然后在小部件中显示它们。
t = client_session.time_table("PT1s")
from deephaven_ipywidgets import DeephavenWidget
display(DeephavenWidget(t))
您还可以引用服务器上已创建的对象。此代码假定服务器上存在一个名为 t
的表格。
display(DeephavenWidget("t", session=client_session))
备用 Deephaven 服务器 URL
默认情况下,Deephaven 服务器位于 https://127.0.0.1:{port}
,其中 {port}
是 Deephaven 服务器创建调用中设置的端口号。如果服务器不存在,例如在 Docker 容器中运行 Jupyter notebook 时,在创建 DeephavenWidget
之前,将 DEEPHAVEN_IPY_URL
环境变量修改为正确的 URL。
import os
os.environ["DEEPHAVEN_IPY_URL"] = "https://127.0.0.1:1234"
开发安装
在开始之前,您需要安装python3、node 和 yarn。
创建并激活 dev python venv 环境
export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip setuptools
pip install deephaven-server jupyter jupyterlab jupyter-packaging
在初始安装/创建后,您只需执行以下操作
source .venv/bin/activate
安装 python。这将还会构建 TS 包。
pip install -e ".[test, examples]"
在开发您的扩展时,您需要手动使用笔记本/实验室前端启用您的扩展。对于实验室,这是通过以下命令完成的
jupyter labextension develop --overwrite .
yarn run build
对于经典笔记本,您需要运行
jupyter nbextension install --sys-prefix --symlink --overwrite --py deephaven_ipywidgets
jupyter nbextension enable --sys-prefix --py deephaven_ipywidgets
请注意,--symlink
标志在 Windows 上不起作用,因此您将不得不每次重建扩展时都运行 install
命令。对于某些安装,您可能还需要另一个标志而不是 --sys-prefix
,但在此我们不讨论这些标志的含义。
对于在 VS Code 中运行,您需要运行经典笔记本步骤,以及设置 VS Code 环境
- 创建一个
.env
文件,并设置您的JAVA_HOME
变量,例如
JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home
- 创建一个新的笔记本 (.ipynb) 或打开现有的笔记本文件(例如 example.ipynb)
- 在笔记本中,请确保已选择您的
.venv
Python 环境 - 您可以使用右上角的下拉菜单,或者按Ctrl + P
然后输入> Select Kernel
并选择Notebook: Select Notebook Kernel
选项并选择.venv
。
如何查看您的更改
Typescript
如果您使用 JupyterLab 进行开发,则可以监视源目录,同时在不同的终端中同时运行 JupyterLab,以监视扩展源中的更改并自动重建小部件。
# Watch the source directory in one terminal, automatically rebuilding when needed
yarn run watch
# Run JupyterLab in another terminal
jupyter lab
更改后,等待构建完成,然后刷新浏览器,更改应生效。
Python
如果您对 Python 代码进行了更改,则需要重新启动笔记本内核才能生效。
测试您的更改
Python 和 TypeScript 代码都有自己的测试套件。
- Python:要运行 Python 测试,请在存储库的根目录中运行
pytest
。 - TypeScript:要运行 TypeScript 测试,请在存储库的根目录中运行
yarn run lint:check
以运行eslint
测试。然后运行yarn run test
来运行其余的单元测试。
发布您的初始包
- 添加测试
- 确保本地和持续集成(CI)测试通过。检查覆盖率是否合理。
- 创建一个发布提交,在
_version.py
中删除, 'dev'
条目。 - 更新
package.json
中的版本。 - 发布 npm 包。
npm login npm publish
- 安装发布依赖项。
pip install build twine
- 构建资产并发布。
python -m build . twine check dist/* twine upload dist/*
- 标记发布提交(使用命令
git tag <python package version identifier>
)。 - 更新
_version.py
中的版本,并将其放回 dev 状态(例如,从 0.1.0 -> 0.2.0.dev)。更新 npm 包的版本(但不进行发布)。 - 提交更改。
- 执行命令
git push
和git push --tags
。
哈希值 for deephaven_ipywidgets-0.6.2-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bd833b300e9cc433fde9295fec1ec4e4e67b4399273756e449ccbdadcf815e11 |
|
MD5 | 1f3fa66a3bab09e68aa15fdda98bea46 |
|
BLAKE2b-256 | d88b92aefa1f54e312e48c50bbdeda6d0ccd3528946b07ea12cc94a409c2373d |