Browse Source

Use UV for the CI/CD (#757)

uv is an altermative to pip and offer better performance as well as
being written in Rust it makes dora ecosystem in python with ruff fully
rust based which increase the overall security and deployability of
dora.
tags/v0.3.9-rc1
Haixuan Xavier Tao GitHub 1 year ago
parent
commit
c10eb15f68
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
36 changed files with 425 additions and 538 deletions
  1. +10
    -10
      .github/workflows/node-hub-ci-cd.yml
  2. +8
    -5
      .github/workflows/node_hub_test.sh
  3. +1
    -1
      .gitignore
  4. +8
    -7
      apis/python/node/dora/__init__.py
  5. +8
    -14
      apis/python/node/dora/cuda.py
  6. +6
    -0
      apis/python/node/pyproject.toml
  7. +2
    -1
      binaries/cli/pyproject.toml
  8. +8
    -19
      binaries/cli/src/template/python/__node-name__/pyproject.toml
  9. +14
    -25
      node-hub/README.md
  10. +11
    -16
      node-hub/dora-argotranslate/pyproject.toml
  11. +19
    -25
      node-hub/dora-distil-whisper/pyproject.toml
  12. +10
    -17
      node-hub/dora-echo/pyproject.toml
  13. +22
    -22
      node-hub/dora-internvl/pyproject.toml
  14. +16
    -18
      node-hub/dora-keyboard/pyproject.toml
  15. +2
    -0
      node-hub/dora-kit-car/pyproject.toml
  16. +16
    -18
      node-hub/dora-microphone/pyproject.toml
  17. +19
    -20
      node-hub/dora-openai-server/pyproject.toml
  18. +20
    -19
      node-hub/dora-opus/pyproject.toml
  19. +11
    -21
      node-hub/dora-outtetts/pyproject.toml
  20. +19
    -19
      node-hub/dora-parler/pyproject.toml
  21. +8
    -16
      node-hub/dora-piper/pyproject.toml
  22. +15
    -23
      node-hub/dora-pyaudio/pyproject.toml
  23. +9
    -14
      node-hub/dora-pyorbbecksdk/pyproject.toml
  24. +14
    -19
      node-hub/dora-pyrealsense/pyproject.toml
  25. +21
    -21
      node-hub/dora-qwenvl/pyproject.toml
  26. +32
    -31
      node-hub/dora-rdt-1b/pyproject.toml
  27. +3
    -0
      node-hub/dora-rerun/pyproject.toml
  28. +8
    -11
      node-hub/dora-ugv/pyproject.toml
  29. +8
    -17
      node-hub/dora-vad/pyproject.toml
  30. +9
    -14
      node-hub/dora-yolo/pyproject.toml
  31. +14
    -15
      node-hub/llama-factory-recorder/pyproject.toml
  32. +10
    -15
      node-hub/opencv-plot/pyproject.toml
  33. +9
    -14
      node-hub/opencv-video-capture/pyproject.toml
  34. +11
    -17
      node-hub/pyarrow-assert/pyproject.toml
  35. +12
    -17
      node-hub/pyarrow-sender/pyproject.toml
  36. +12
    -17
      node-hub/terminal-input/pyproject.toml

+ 10
- 10
.github/workflows/node-hub-ci-cd.yml View File

@@ -81,12 +81,11 @@ jobs:
with:
python-version: "3.10"

- name: Set up Poetry
- name: Set up UV
if: runner.os == 'Linux' || github.event_name == 'workflow_dispatch' || (github.event_name == 'release' && startsWith(github.ref, 'refs/tags/'))
run: |
curl -sSL https://install.python-poetry.org | python3 -
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH
pip install ruff pytest

- name: Set up Rust
if: runner.os == 'Linux' || github.event_name == 'workflow_dispatch' || (github.event_name == 'release' && startsWith(github.ref, 'refs/tags/'))
@@ -139,9 +138,9 @@ jobs:
with:
python-version: "3.10"

- name: Set up Poetry
- name: Set up UV
run: |
curl -sSL https://install.python-poetry.org | python3 -
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Set up Rust
@@ -152,7 +151,7 @@ jobs:
- name: Publish Projects
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_PASS }}
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_PASS }}
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_PASS }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: |
dir=$(pwd)
@@ -165,7 +164,7 @@ jobs:
if [[ -f "Cargo.toml" && -f "pyproject.toml" ]]; then
echo "Publishing $dir using maturin..."
if [[ "${{ runner.os }}" == "Linux" ]]; then
pip3 install "maturin[zig]"
pip install "maturin[zig]"
## The CI/CD is sequential to limit the number of workers used.
@@ -181,13 +180,14 @@ jobs:
maturin publish --target armv7-unknown-linux-musleabihf --zig --skip-existing

else
pip3 install maturin
pip install maturin
maturin publish --skip-existing
fi
else
if [ -f "pyproject.toml" ]; then
echo "Publishing $dir using Poetry..."
poetry publish --build --skip-existing
echo "Publishing $dir using UV..."
uv build
uv publish
fi

if [ -f "Cargo.toml" ]; then


+ 8
- 5
.github/workflows/node_hub_test.sh View File

@@ -22,7 +22,7 @@ else
cargo build
cargo test

pip3 install "maturin[zig]"
pip install "maturin[zig]"
maturin build --zig
# aarch64-unknown-linux-gnu
@@ -41,10 +41,13 @@ else
cargo test
else
if [ -f "$dir/pyproject.toml" ]; then
echo "Running linting and tests for Python project in $dir..."
pip install .
ruff check .
poetry run pytest
echo "CI: Installing in $dir..."
uv venv
uv pip install .
echo "CI: Running Linting in $dir..."
uv run ruff check .
echo "CI: Running Pytest in $dir..."
uv run pytest
fi
fi
fi

+ 1
- 1
.gitignore View File

@@ -129,7 +129,7 @@ ipython_config.py

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
.ruff_cache
# Celery stuff
celerybeat-schedule
celerybeat.pid


+ 8
- 7
apis/python/node/dora/__init__.py View File

@@ -10,30 +10,31 @@ pip install dora-rs
from enum import Enum

from .dora import *

from .dora import (
Node,
Ros2Context,
Ros2Durability,
Ros2Liveliness,
Ros2Node,
Ros2NodeOptions,
Ros2Topic,
Ros2Publisher,
Ros2QosPolicies,
Ros2Subscription,
start_runtime,
__version__,
Ros2Topic,
__author__,
Ros2QosPolicies,
Ros2Durability,
Ros2Liveliness,
__version__,
start_runtime,
)


class DoraStatus(Enum):
"""Dora status to indicate if operator `on_input` loop
should be stopped.

Args:
Enum (u8): Status signaling to dora operator to
stop or continue the operator.

"""

CONTINUE = 0


+ 8
- 14
apis/python/node/dora/cuda.py View File

@@ -1,19 +1,18 @@
import pyarrow as pa

# To install pyarrow.cuda, run `conda install pyarrow "arrow-cpp-proc=*=cuda" -c conda-forge`
import pyarrow.cuda as cuda

# Make sure to install torch with cuda
import torch
from numba.cuda import to_device

# Make sure to install numba with cuda
from numba.cuda.cudadrv.devicearray import DeviceNDArray
from numba.cuda import to_device

# To install pyarrow.cuda, run `conda install pyarrow "arrow-cpp-proc=*=cuda" -c conda-forge`
from pyarrow import cuda


def torch_to_ipc_buffer(tensor: torch.TensorType) -> tuple[pa.array, dict]:
"""
Converts a Pytorch tensor into a pyarrow buffer containing the IPC handle and its metadata.
"""Converts a Pytorch tensor into a pyarrow buffer containing the IPC handle and its metadata.

Example Use:
```python
@@ -34,8 +33,7 @@ def torch_to_ipc_buffer(tensor: torch.TensorType) -> tuple[pa.array, dict]:


def ipc_buffer_to_ipc_handle(handle_buffer: pa.array) -> cuda.IpcMemHandle:
"""
Converts a buffer containing a serialized handler into cuda IPC MemHandle.
"""Converts a buffer containing a serialized handler into cuda IPC MemHandle.

example use:
```python
@@ -57,8 +55,7 @@ def ipc_buffer_to_ipc_handle(handle_buffer: pa.array) -> cuda.IpcMemHandle:


def cudabuffer_to_numba(buffer: cuda.CudaBuffer, metadata: dict) -> DeviceNDArray:
"""
Converts a pyarrow CUDA buffer to numba.
"""Converts a pyarrow CUDA buffer to numba.

example use:
```python
@@ -74,7 +71,6 @@ def cudabuffer_to_numba(buffer: cuda.CudaBuffer, metadata: dict) -> DeviceNDArra
numba_tensor = cudabuffer_to_numbda(cudabuffer, event["metadata"])
```
"""

shape = metadata["shape"]
strides = metadata["strides"]
dtype = metadata["dtype"]
@@ -83,8 +79,7 @@ def cudabuffer_to_numba(buffer: cuda.CudaBuffer, metadata: dict) -> DeviceNDArra


def cudabuffer_to_torch(buffer: cuda.CudaBuffer, metadata: dict) -> torch.Tensor:
"""
Converts a pyarrow CUDA buffer to a torch tensor.
"""Converts a pyarrow CUDA buffer to a torch tensor.

example use:
```python
@@ -100,7 +95,6 @@ def cudabuffer_to_torch(buffer: cuda.CudaBuffer, metadata: dict) -> torch.Tensor
torch_tensor = cudabuffer_to_torch(cudabuffer, event["metadata"]) # on cuda
```
"""

device_arr = cudabuffer_to_numba(buffer, metadata)
torch_tensor = torch.as_tensor(device_arr, device="cuda")
return torch_tensor

+ 6
- 0
apis/python/node/pyproject.toml View File

@@ -6,7 +6,13 @@ build-backend = "maturin"
name = "dora-rs"
dynamic = ["version"]
# Install pyarrow at the same time of dora-rs
requires-python = ">=3.7"
license = { text = "MIT" }
readme = "README.md"
dependencies = ['pyarrow']

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.maturin]
features = ["pyo3/extension-module"]

+ 2
- 1
binaries/cli/pyproject.toml View File

@@ -5,8 +5,9 @@ build-backend = "maturin"
[project]
name = "dora-rs-cli"
dynamic = ["version"]

scripts = { "dora" = "dora_cli:py_main" }
license = { text = "MIT" }
requires-python = ">=3.8"
dependencies = ['dora-rs']

[tool.maturin]


+ 8
- 19
binaries/cli/src/template/python/__node-name__/pyproject.toml View File

@@ -1,27 +1,16 @@
[tool.poetry]
[project]
name = "__node-name__"
version = "0.0.0"
authors = ["author"]
authors = [{ name = "Your Name", email = "email@email.com" }]
description = "Node Name"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/__node-name__/README.md"
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "__node_name__" }]
requires-python = ">=3.8"

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 15.0.0"
python = "^3.7"
dependencies = ["dora-rs >= 0.3.6"]

[tool.poetry.dev-dependencies]
pytest = ">= 6.3.4"
ruff = ">= 0.9.1"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
__node-name__ = "__node_name__.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 14
- 25
node-hub/README.md View File

@@ -27,28 +27,21 @@ def main():
And then you will need to adapt the following `pyproject.toml` file:

```toml
[tool.poetry]
[project]
name = "[name of the node e.g. video-encoder, with '-' to replace spaces]"
version = "0.1"
authors = ["[Pseudo/Name] <[email]>"]
authors = [{ name = "[Pseudo/Name]", email = "[email]" }]
description = "Dora Node for []"
readme = "README.md"
license = { text = "MIT" }

packages = [
{ include = "main.py", to = "[name of the node with '_' to replace spaces]" }
dependencies = [
"dora-rs >= 0.3.8",
]

[tool.poetry.dependencies]
python = "^3.11"
dora-rs = "0.3.5"
... [add your dependencies here] ...

[tool.poetry.scripts]
[project.scripts]
[name of the node with '-' to replace spaces] = "[name of the node with '_' to replace spaces].main:main"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
```

Finally, the README.md file should explicit all inputs/outputs of the node and how to configure it in the YAML file.
@@ -56,7 +49,7 @@ Finally, the README.md file should explicit all inputs/outputs of the node and h
# Example

```toml
[tool.poetry]
[project]
name = "opencv-plot"
version = "0.1"
authors = [
@@ -65,22 +58,18 @@ authors = [
]
description = "Dora Node for plotting data with OpenCV"
readme = "README.md"
license = { text = "MIT" }
requires-python = ">=3.7"

packages = [
{ include = "main.py", to = "opencv_plot" }
dependencies = [
"dora-rs >= 0.3.8",
]
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.dependencies]
python = "^3.11"
dora-rs = "^0.3.5"
opencv-python = "^4.10.0.84"

[tool.poetry.scripts]
[project.scripts]
opencv-plot = "opencv_plot.main:main"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
```

## License


+ 11
- 16
node-hub/dora-argotranslate/pyproject.toml View File

@@ -1,25 +1,20 @@
[tool.poetry]
[project]
name = "dora-argotranslate"
version = "0.3.8"
description = "Dora Node for Text translating using Argostranslate"
readme = "README.md"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
"Félix Huang <felix.huang.net@gmail.com>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
{ name = "Félix Huang", email = "felix.huang.net@gmail.com" },
]
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "dora_argotranslate" }]
dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "argostranslate >= 1.9.6"]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
python = "^3.7"
argostranslate = "^1.9.6"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
dora-argotranslate = "dora_argotranslate.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 19
- 25
node-hub/dora-distil-whisper/pyproject.toml View File

@@ -1,35 +1,29 @@
[tool.poetry]
[project]
name = "dora-distil-whisper"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora dora-distil-whisper"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/dora-distil-whisper/README.md"
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "dora_distil_whisper" }]
requires-python = ">=3.8"

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 5.0.0"
transformers = "^4.0.0"
accelerate = "^0.29.2"
torch = "^2.2.0"
python = "^3.7"
modelscope = "^1.18.1"
lightning-whisper-mlx = { version = "^0.0.10", platform = "darwin" }
dependencies = [
"dora-rs >= 0.3.6",
"numpy < 2.0.0",
"pyarrow >= 5.0.0",
"transformers >= 4.0.0",
"accelerate >= 0.29.2",
"torch >= 2.2.0",
"modelscope >= 1.18.1",
"lightning-whisper-mlx >= 0.0.10; sys_platform == 'darwin'",
]

[tool.poetry.scripts]
dora-distil-whisper = "dora_distil_whisper.main:main"

[tool.poetry.dev-dependencies]
pytest = ">= 6.3.4"
ruff = ">= 0.9.1"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[project.scripts]
dora-distil-whisper = "dora_distil_whisper.main:main"

+ 10
- 17
node-hub/dora-echo/pyproject.toml View File

@@ -1,26 +1,19 @@
[tool.poetry]
[project]
name = "dora-echo"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora echo"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/dora-echo/README.md"
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "dora_echo" }]
requires-python = ">=3.8"

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 5.0.0"
python = "^3.7"
dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "pyarrow >= 5.0.0"]

[tool.poetry.scripts]
dora-echo = "dora_echo.main:main"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[project.scripts]
dora-echo = "dora_echo.main:main"

+ 22
- 22
node-hub/dora-internvl/pyproject.toml View File

@@ -1,32 +1,32 @@
[tool.poetry]
[project]
name = "dora-internvl"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora Node for VLM"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "dora_internvl" }]
dependencies = [

[tool.poetry.dependencies]
python = "^3.7"
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
torch = "^2.2.0"
torchvision = "^0.17"
transformers = "^4.11.3"
pillow = "^10.0.0"
bitsandbytes = "^0.41.0"
einops = "^0.6.1"
einops-exts = "^0.0.4"
timm = "^0.9.12"
sentencepiece = "^0.1.99"
"dora-rs >= 0.3.6",
"numpy < 2.0.0",
"torch >= 2.2.0",
"torchvision >= 0.17",
"transformers >= 4.11.3",
"pillow >= 10.0.0",
"bitsandbytes >= 0.41.0",
"einops >= 0.6.1",
"einops-exts >= 0.0.4",
"timm >= 0.9.12",
"sentencepiece >= 0.1.99",
]

[tool.poetry.scripts]
dora-internvl = "dora_internvl.main:main"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[project.scripts]
dora-internvl = "dora_internvl.main:main"

+ 16
- 18
node-hub/dora-keyboard/pyproject.toml View File

@@ -1,27 +1,25 @@
[tool.poetry]
[project]
name = "dora-keyboard"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora dora-keyboard"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/dora-keyboard/README.md"
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "dora_keyboard" }]
requires-python = ">=3.8"

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 5.0.0"
pynput = "^1.6.0"
python = "^3.7"
dependencies = [
"dora-rs >= 0.3.6",
"numpy < 2.0.0",
"pyarrow >= 5.0.0",
"pynput >= 1.6.0",

[tool.poetry.scripts]
dora-keyboard = "dora_keyboard.main:main"
]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[project.scripts]
dora-keyboard = "dora_keyboard.main:main"

+ 2
- 0
node-hub/dora-kit-car/pyproject.toml View File

@@ -7,7 +7,9 @@ name = "dora-kit-car"
dynamic = ["version"]
authors = [{ name = "Leon", email = "echo_ai@foxmail.com" }]
description = "Dora Node for dora kit car"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

scripts = { "dora-kit-car" = "dora_kit_car:py_main" }



+ 16
- 18
node-hub/dora-microphone/pyproject.toml View File

@@ -1,27 +1,25 @@
[tool.poetry]
[project]
name = "dora-microphone"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora dora-microphone"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/dora-microphone/README.md"
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "dora_microphone" }]
requires-python = ">=3.8"

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 5.0.0"
sounddevice = "^0.4.6"
python = "^3.7"
dependencies = [
"dora-rs >= 0.3.6",
"numpy < 2.0.0",
"pyarrow >= 5.0.0",
"sounddevice >= 0.4.6",

[tool.poetry.scripts]
dora-microphone = "dora_microphone.main:main"
]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[project.scripts]
dora-microphone = "dora_microphone.main:main"

+ 19
- 20
node-hub/dora-openai-server/pyproject.toml View File

@@ -1,33 +1,32 @@
[tool.poetry]
[project]
name = "dora-openai-server"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora OpenAI API Server"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/dora-openai-server/README.md"
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "dora_openai_server" }]
requires-python = ">=3.8"

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 5.0.0"
python = "^3.7"
fastapi = "^0.115"
asyncio = "^3.4"
uvicorn = "^0.31"
pydantic = "^2.9"
dependencies = [
"dora-rs >= 0.3.6",
"numpy < 2.0.0",
"pyarrow >= 5.0.0",

[tool.poetry.scripts]
"fastapi >= 0.115",
"asyncio >= 3.4",
"uvicorn >= 0.31",
"pydantic >= 2.9",
]

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[project.scripts]
dora-openai-server = "dora_openai_server.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

[tool.ruff.lint]
extend-select = ["I"]

+ 20
- 19
node-hub/dora-opus/pyproject.toml View File

@@ -1,28 +1,29 @@
[tool.poetry]
[project]
name = "dora-opus"
version = "0.3.8"
description = "Dora Node for Text translating using Opus"
readme = "README.md"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
"Félix Huang <felix.huang.net@gmail.com>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
{ name = "Félix Huang", email = "felix.huang.net@gmail.com" },
]

packages = [{ include = "dora_opus" }]
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
python = "^3.7"
transformers = "^4.45"
modelscope = "^1.18.1"
sentencepiece = "^0.1.99"
torch = "^2.2.0"
dependencies = [
"dora-rs >= 0.3.6",
"numpy < 2.0.0",

[tool.poetry.scripts]
dora-opus = "dora_opus.main:main"
"transformers >= 4.45",
"modelscope >= 1.18.1",
"sentencepiece >= 0.1.99",
"torch >= 2.2.0",
]

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[project.scripts]
dora-opus = "dora_opus.main:main"

+ 11
- 21
node-hub/dora-outtetts/pyproject.toml View File

@@ -2,31 +2,21 @@
name = "dora-outtetts"
version = "0.0.0"
authors = []
license = "MIT License"
description = "dora-outtetts"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.10"

[tool.poetry]
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/dora-outtetts/README.md"
packages = [{ include = "dora_outtetts" }]
dependencies = [
"dora-rs >= 0.3.6",
"numpy < 2.0.0",
"pyarrow >= 5.0.0",
"outetts >= 0.2.3",
"llama-cpp-python >= 0.3.5",
]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 5.0.0"
python = "^3.10"
outetts = "^0.2.3"
llama-cpp-python = "^0.3.5"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.dev-dependencies]
pytest = ">= 6.3.4"
ruff = ">= 0.9.1"

[tool.poetry.scripts]
[project.scripts]
dora-outtetts = "dora_outtetts.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 19
- 19
node-hub/dora-parler/pyproject.toml View File

@@ -1,31 +1,31 @@
[tool.poetry]
[project]
name = "dora-parler"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora Node for Text to speech with dora Parler-TTS"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "dora_parler" }]
dependencies = [
"dora-rs >= 0.3.6",
"numpy < 2.0.0",
"torch >= 2.2.0",
"torchaudio >= 2.2.2",
"sentencepiece >= 0.1.99",
"pyaudio >= 0.2.14",
"modelscope >= 1.18.1",
"transformers >=4.43.0,<=4.43.3",
]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
[tool.uv.sources]
parler_tts = { git = "https://github.com/huggingface/parler-tts.git" }
transformers = ">=4.43.0,<=4.43.3"
torch = "^2.2.0"
torchaudio = "^2.2.2"
sentencepiece = "^0.1.99"
python = "^3.7"
pyaudio = "^0.2.14"
modelscope = "^1.18.1"

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
dora-parler = "dora_parler.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 8
- 16
node-hub/dora-piper/pyproject.toml View File

@@ -1,24 +1,16 @@
[tool.poetry]
[project]
name = "dora-piper"
version = "0.3.8"
authors = ["Haixuan Xavier Tao <tao.xavier@outlook.com>"]
authors = [{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" }]
description = "Dora Node for using Agilex piper"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "dora_piper" }]
dependencies = ["dora-rs >= 0.3.6", "piper_sdk >= 0.0.8", "numpy < 2.0.0"]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
python = "^3.7"
piper_sdk = "^0.0.8"
numpy = "< 2.0.0"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.dev-dependencies]
pytest = "^8.3.4"

[tool.poetry.scripts]
[project.scripts]
dora-piper = "dora_piper.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 15
- 23
node-hub/dora-pyaudio/pyproject.toml View File

@@ -1,29 +1,21 @@
[tool.poetry]
[project]
name = "dora-pyaudio"
version = "0.0.0"
authors = ["author"]
description = "dora-pyaudio"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/dora-pyaudio/README.md"
version = "0.0.1"
authors = [{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" }]
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "dora_pyaudio" }]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = ">= 1.0.0"
pyarrow = ">= 5.0.0"
python = ">= 3.8"
pyaudio = ">= 0.1.0"
requires-python = ">=3.8"
description = "dora-pyaudio"

[tool.poetry.dev-dependencies]
pytest = ">= 6.3.4"
ruff = ">= 0.9.1"
dependencies = [
"dora-rs >= 0.3.6",
"numpy >= 1.0.0",
"pyarrow >= 5.0.0",
"pyaudio >= 0.1.0",
]

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
dora-pyaudio = "dora_pyaudio.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 9
- 14
node-hub/dora-pyorbbecksdk/pyproject.toml View File

@@ -1,25 +1,20 @@
[tool.poetry]
[project]
name = "dora-pyorbbecksdk"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Xiang Yang <Ryu-Yang@qq.com>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Xiang Yang", email = "Ryu-Yang@qq.com" },
]
description = "Dora Node for capturing video with PyOrbbeck SDK"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "dora_pyorbbecksdk" }]
dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "opencv-python >= 4.1.1"]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
python = "^3.7"
numpy = "< 2.0.0"
opencv-python = ">= 4.1.1"

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
dora-pyorbbecksdk = "dora_pyorbbecksdk.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 14
- 19
node-hub/dora-pyrealsense/pyproject.toml View File

@@ -1,27 +1,22 @@
[tool.poetry]
[project]
name = "dora-pyrealsense"
version = "0.3.8"
authors = ["Haixuan Xavier Tao <tao.xavier@outlook.com>"]
authors = [{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" }]
description = "Dora Node for capturing video with Pyrealsense"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "dora_pyrealsense" }]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
opencv-python = ">= 4.1.1"
python = "^3.7"
pyrealsense2 = [
{ version = "2.54.1.5216", platform = "linux" },
{ version = "2.54.1.5216", platform = "windows" },
dependencies = [
"dora-rs >= 0.3.6",
"numpy < 2.0.0",
"opencv-python >= 4.1.1",
"pyrealsense2-macosx >= 2.54.2; sys_platform == 'darwin'",
"pyrealsense2 == 2.54.1.5216; sys_platform == 'linux'",
"pyrealsense2 == 2.54.1.5216; sys_platform == 'windows'",
]
pyrealsense2-macosx = { version = "2.54.2", platform = "darwin" }
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
dora-pyrealsense = "dora_pyrealsense.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 21
- 21
node-hub/dora-qwenvl/pyproject.toml View File

@@ -1,33 +1,33 @@
[tool.poetry]
[project]
name = "dora-qwenvl"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora Node for VLM"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "dora_qwenvl" }]
dependencies = [
"dora-rs >= 0.3.6",
"numpy < 2.0.0",
"torch >= 2.2.0",
"torchvision >= 0.20",
"transformers >= 4.45",
"qwen-vl-utils >= 0.0.2",
"accelerate >= 0.33",
"opencv-python >= 4.1.1",
"modelscope >= 1.18.1",
"peft == 0.13.2",
]

[tool.poetry.dependencies]
python = "^3.7"
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
torch = "^2.2.0"
torchvision = "^0.20"
transformers = "^4.45"
qwen-vl-utils = "^0.0.2"
accelerate = "^0.33"
opencv-python = ">= 4.1.1"
modelscope = "^1.18.1"
peft = "0.13.2"
# flash_attn = "^2.6.1" # Install using: pip install -U flash-attn --no-build-isolation


[tool.poetry.scripts]
dora-qwenvl = "dora_qwenvl.main:main"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[project.scripts]
dora-qwenvl = "dora_qwenvl.main:main"

+ 32
- 31
node-hub/dora-rdt-1b/pyproject.toml View File

@@ -1,48 +1,49 @@
[tool.poetry]
[project]
name = "dora-rdt-1b"
version = "0.3.8"
authors = ["Haixuan Xavier Tao <tao.xavier@outlook.com>"]
authors = [{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" }]
description = "Dora Node for RDT 1B"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.9"

dependencies = [
"dora-rs >= 0.3.6",
"numpy > 1.24.4",
"torch >= 2.4.0",
"torchvision >= 0.19",
"transformers >= 4.45",
"qwen-vl-utils >= 0.0.2",
"accelerate >= 0.33",
"opencv-python >= 4.1.1",
"modelscope >= 1.18.1",
"packaging == 24.0",
"wandb == 0.17.0",
"diffusers == 0.27.2",
"timm == 1.0.3",
"sentencepiece == 0.2.0",
"h5py == 3.11.0",
"imgaug == 0.4.0",
"huggingface_hub == 0.23.5",
]

packages = [{ include = "dora_rdt_1b" }]

[tool.poetry.dependencies]
python = "^3.7"
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
torch = "^2.4.0"
torchvision = "^0.19"
transformers = "^4.45"
qwen-vl-utils = "^0.0.2"
accelerate = "^0.33"
opencv-python = ">= 4.1.1"
modelscope = "^1.18.1"
packaging = "24.0"
wandb = "0.17.0"
diffusers = "0.27.2"
timm = "1.0.3"
sentencepiece = "0.2.0"
h5py = "3.11.0"
imgaug = "0.4.0"
huggingface_hub = "0.23.5"
# flash_attn = "^2.6.1" # Install using: pip install -U flash-attn --no-build-isolation


[tool.poetry.dev-dependencies]
pytest = "^8.3.4"
ruff = ">= 0.9.1"

[tool.black]
extend-exclude = 'dora_rdt_1b/RoboticsDiffusionTransformer'


[tool.poetry.scripts]
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[project.scripts]
dora-rdt-1b = "dora_rdt_1b.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

[tool.ruff]
exclude = ["dora_rdt_1b/RoboticsDiffusionTransformer"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 3
- 0
node-hub/dora-rerun/pyproject.toml View File

@@ -5,6 +5,9 @@ build-backend = "maturin"
[project]
name = "dora-rerun"
dynamic = ["version"]
license = { text = "MIT" }
requires-python = ">=3.7"

dependencies = [
'rerun_sdk==0.21.0',
# "rerun-loader-urdf @ git+https://github.com/rerun-io/rerun-loader-python-example-urdf.git",


+ 8
- 11
node-hub/dora-ugv/pyproject.toml View File

@@ -1,20 +1,17 @@
[tool.poetry]
[project]
name = "dora-ugv"
version = "0.3.6"
authors = ["Haixuan Xavier Tao <tao.xavier@outlook.com>"]
authors = [{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" }]
description = "Dora Node for using Agilex UGV"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "dora_ugv" }]
dependencies = ["dora-rs >= 0.3.6"]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
python = "^3.7"

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
dora-ugv = "dora_ugv.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 8
- 17
node-hub/dora-vad/pyproject.toml View File

@@ -1,26 +1,17 @@
[tool.poetry]
[project]
name = "dora-vad"
version = "0.3.8"
description = "Dora Node for Text translating using Argostranslate"
authors = [{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" }]
license = { text = "MIT" }
readme = "README.md"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
"Félix Huang <felix.huang.net@gmail.com>",
]
requires-python = ">=3.8"

packages = [{ include = "dora_vad" }]
dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "silero-vad >= 5.1"]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
python = "^3.7"
silero-vad = "^5.1"

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
dora-vad = "dora_vad.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 9
- 14
node-hub/dora-yolo/pyproject.toml View File

@@ -1,24 +1,19 @@
[tool.poetry]
[project]
name = "dora-yolo"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora Node for object detection with dora YOLOv8"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "dora_yolo" }]
dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "ultralytics >= 8.3.24"]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
ultralytics = "^8.3.24"
python = "^3.7"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
dora-yolo = "dora_yolo.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 14
- 15
node-hub/llama-factory-recorder/pyproject.toml View File

@@ -1,24 +1,23 @@
[tool.poetry]
[project]
name = "llama-factory-recorder"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora Node for VLM"
readme = "README.md"

packages = [{ include = "llama_factory_recorder" }]

[tool.poetry.dependencies]
python = "^3.7"
dora-rs = "^0.3.6"
pillow = "^10.4.0"
opencv-python = ">= 4.1.1"
requires-python = ">=3.8"

[tool.poetry.scripts]
llama-factory-recorder = "llama_factory_recorder.main:main"
dependencies = [
"dora-rs >= 0.3.6",
"pillow >= 10.4.0",
"opencv-python >= 4.1.1",
]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[project.scripts]
llama-factory-recorder = "llama_factory_recorder.main:main"

+ 10
- 15
node-hub/opencv-plot/pyproject.toml View File

@@ -1,24 +1,19 @@
[tool.poetry]
[project]
name = "opencv-plot"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora Node for plotting text and bbox on image with OpenCV"
readme = "README.md"

packages = [{ include = "opencv_plot" }]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
opencv-python = ">= 4.1.1"
python = "^3.7"
requires-python = ">=3.8"

[tool.poetry.scripts]
opencv-plot = "opencv_plot.main:main"
dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "opencv-python >= 4.1.1"]

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[project.scripts]
opencv-plot = "opencv_plot.main:main"

+ 9
- 14
node-hub/opencv-video-capture/pyproject.toml View File

@@ -1,24 +1,19 @@
[tool.poetry]
[project]
name = "opencv-video-capture"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora Node for capturing video with OpenCV"
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.8"

packages = [{ include = "opencv_video_capture" }]
dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "opencv-python >= 4.1.1"]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
opencv-python = ">= 4.1.1"
python = "^3.7"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[tool.poetry.scripts]
[project.scripts]
opencv-video-capture = "opencv_video_capture.main:main"

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"

+ 11
- 17
node-hub/pyarrow-assert/pyproject.toml View File

@@ -1,26 +1,20 @@
[tool.poetry]
[project]
name = "pyarrow-assert"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora Node for plotting text and bbox on image with OpenCV"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/pyarrow-assert/README.md"
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "pyarrow_assert" }]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 5.0.0"
python = "^3.7"
requires-python = ">=3.8"

[tool.poetry.scripts]
pyarrow-assert = "pyarrow_assert.main:main"
dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "pyarrow >= 5.0.0"]

[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[project.scripts]
pyarrow-assert = "pyarrow_assert.main:main"

+ 12
- 17
node-hub/pyarrow-sender/pyproject.toml View File

@@ -1,26 +1,21 @@
[tool.poetry]
[project]
name = "pyarrow-sender"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora pyarrow Sender"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/pyarrow-sender/README.md"
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "pyarrow_sender" }]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 5.0.0"
python = "^3.7"

[tool.poetry.scripts]
pyarrow-sender = "pyarrow_sender.main:main"
requires-python = ">=3.8"

dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "pyarrow >= 5.0.0"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[project.scripts]
pyarrow-sender = "pyarrow_sender.main:main"

+ 12
- 17
node-hub/terminal-input/pyproject.toml View File

@@ -1,26 +1,21 @@
[tool.poetry]
[project]
name = "terminal-input"
version = "0.3.8"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>",
{ name = "Haixuan Xavier Tao", email = "tao.xavier@outlook.com" },
{ name = "Enzo Le Van", email = "dev@enzo-le-van.fr" },
]
description = "Dora terminal input"
license = "MIT License"
homepage = "https://github.com/dora-rs/dora.git"
documentation = "https://github.com/dora-rs/dora/blob/main/node-hub/terminal-input/README.md"
license = { text = "MIT" }
readme = "README.md"
packages = [{ include = "terminal_input" }]

[tool.poetry.dependencies]
dora-rs = "^0.3.6"
numpy = "< 2.0.0"
pyarrow = ">= 5.0.0"
python = "^3.7"

[tool.poetry.scripts]
terminal-input = "terminal_input.main:main"
requires-python = ">=3.8"

dependencies = ["dora-rs >= 0.3.6", "numpy < 2.0.0", "pyarrow >= 5.0.0"]

[build-system]
requires = ["poetry-core>=1.8.0"]
build-backend = "poetry.core.masonry.api"
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]

[project.scripts]
terminal-input = "terminal_input.main:main"

Loading…
Cancel
Save