跳转到主要内容

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 文件。

构建插件

要构建插件,您需要安装 npmpython,以及 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 (14.5 kB 查看散列)

上传时间 Python 3

由以下支持