Deephaven的日期时间输入插件
项目描述
deephaven-plugin-datetimeinput
这是一个由deephaven-plugin模板生成的Deephaven Python插件。
具体来说,这个插件是一个日期时间输入插件,接受直到纳秒的日期时间输入。
安装插件
可以使用pip install deephaven-plugin-datetimeinput
将插件安装到Deephaven实例中。要在您的开发环境中安装Deephaven和此插件
pip install deephaven-server deephaven-plugin-datetimeinput
deephaven server
请参阅插件文档获取更多信息。
使用插件
一旦Deephaven服务器运行,插件应该可以使用了。
from deephaven_plugin_datetimeinput import DateTimeInput
dti = DateTimeInput(on_change=print)
应该会出现一个面板。如果您在输入中进行更改,它们应该会打印到您的控制台。
有关更完整的示例,您可以在此处查看使用输入的日期过滤表
import datetime
from deephaven import time_table, ui
from deephaven_plugin_datetimeinput import DateTimeInput
# Create some dates and a time table that goes back in time one year
now = datetime.datetime.now()
one_year_earlier = now - datetime.timedelta(days=365)
_tt = time_table("PT1s", start_time=one_year_earlier)
# Create a component that uses the `DateTimeInput` to filter a
@ui.component
def ui_time_filter_table(source):
date, set_date = ui.use_state('2024-05-21T12:00:00.000000000 America/Toronto')
return [
DateTimeInput(on_change=set_date, default_value=date),
source.where(f"Timestamp > '{date}'")
]
tft = ui_time_filter_table(_tt)
开发
插件结构
src
目录包含插件的Python和JavaScript代码。在src
目录中,deephaven_plugin_datetimeinput目录包含Python代码,而js
目录包含JavaScript代码。
Python文件具有以下结构:deephaven_plugin_datetimeinput_object.py
定义了一个可以发送消息到客户端的简单Python类。deephaven_plugin_datetimeinput_type.py
定义了插件的Python类型(用于注册)和一个简单的消息流。js_plugin.py
定义了将用于设置插件JavaScript方面的Python类。register.py
将插件注册到Deephaven。
JavaScript 文件具有以下结构:DeephavenPluginDateTimeInputPlugin.ts
向 Deephaven 注册插件。DeephavenPluginDateTimeInputView.tsx
定义插件面板和消息处理。
此外,test
目录包含插件的 Python 测试。这演示了如何在内嵌的 Deephaven 服务器中运行测试。建议使用 tox
来运行测试,项目中也包含了 tox.ini
文件。
构建插件
要构建插件,您需要安装 npm
和 python
,以及 Python 的 build
包。强烈推荐使用 nvm
,项目中也包含了一个 .nvmrc
文件。可以使用以下命令创建 python venv 并安装推荐的包
cd deephaven_plugin_datetimeinput
python -m venv .venv
source .venv/bin/activate
pip install --upgrade -r requirements.txt
从 src/js
目录构建 JavaScript 插件
cd src/js
nvm install
npm install
npm run build
然后,从顶层目录构建 Python 插件
cd ../..
python -m build --wheel
构建的 wheel 文件将位于 dist
目录。
安装开发插件
可以使用 pip install <wheel file>
将插件安装到 Deephaven 实例中。构建插件后,wheel 文件将存储在 dist
目录中。具体操作方式将取决于您运行 Deephaven 的方式。如果使用上述创建的 venv,可以使用以下命令创建插件和服务器
pip install deephaven-server
pip install dist/deephaven_plugin_datetimeinput-0.0.1.dev0-py3-none-any.whl --force-reinstall
deephaven server
请参阅插件文档获取更多信息。
分发插件
要分发插件,可以将 wheel 文件上传到包仓库,例如 PyPI。可以在 setup.cfg
文件中更新插件的版本。
有一个用于测试目的的独立 PyPI 实例。首先在 TestPyPI 创建账户。然后,从 账户管理 获取 API 令牌,设置“范围”为“整个账户”。
要将文件上传到测试实例,请使用以下命令
python -m pip install --upgrade twine
python -m twine upload --repository testpypi dist/*
现在,您可以从测试实例安装插件。需要额外的索引来查找依赖项
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.ac.cn/simple/ deephaven_plugin_datetimeinput
对于生产发布,请访问 PyPI 创建账户。然后,从 账户管理 获取 API 令牌,设置“范围”为“整个账户”。
要上传到生产实例,请使用以下命令。请注意,默认情况下 --repository
是生产实例,因此可以省略
python -m pip install --upgrade twine
python -m twine upload dist/*
现在,您可以从生产实例安装插件
pip install deephaven_plugin_datetimeinput
有关更多信息,请参阅 Python 打包文档。
项目详情
deephaven_plugin_datetimeinput-0.2.0-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6e1ebabd77a95897915622e13dee10217715b51a89c2405ea4ef601c4f1f138e |
|
MD5 | b3c9bb0d581d6f24f84cc545a0b72845 |
|
BLAKE2b-256 | 9b01d26f6b5939159bbbba70c6d040e72b01502921f4efabf2274d88d9e088da |