Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
|
|
5 months ago | |
|---|---|---|
| .. | ||
| dora-argotranslate | 6 months ago | |
| dora-cotracker | 6 months ago | |
| dora-dataset-record | 6 months ago | |
| dora-dav1d | 6 months ago | |
| dora-distil-whisper | 5 months ago | |
| dora-echo | 6 months ago | |
| dora-gradio | 6 months ago | |
| dora-internvl | 6 months ago | |
| dora-ios-lidar | 6 months ago | |
| dora-keyboard | 6 months ago | |
| dora-kit-car | 6 months ago | |
| dora-kokoro-tts | 5 months ago | |
| dora-llama-cpp-python | 7 months ago | |
| dora-magma | 7 months ago | |
| dora-mediapipe | 7 months ago | |
| dora-microphone | 6 months ago | |
| dora-mistral-rs | 6 months ago | |
| dora-mujoco | 7 months ago | |
| dora-mujoco-husky | 9 months ago | |
| dora-object-to-pose | 6 months ago | |
| dora-openai-server | 6 months ago | |
| dora-openai-websocket | 5 months ago | |
| dora-opus | 6 months ago | |
| dora-outtetts | 6 months ago | |
| dora-parler | 6 months ago | |
| dora-phi4 | 6 months ago | |
| dora-piper | 6 months ago | |
| dora-policy-inference | 6 months ago | |
| dora-pyaudio | 6 months ago | |
| dora-pyorbbecksdk | 6 months ago | |
| dora-pyrealsense | 6 months ago | |
| dora-pytorch-kinematics | 7 months ago | |
| dora-qwen | 5 months ago | |
| dora-qwen2-5-vl | 6 months ago | |
| dora-qwenvl | 6 months ago | |
| dora-rav1e | 6 months ago | |
| dora-rdt-1b | 6 months ago | |
| dora-reachy1 | 9 months ago | |
| dora-reachy2 | 6 months ago | |
| dora-record | 6 months ago | |
| dora-rerun | 6 months ago | |
| dora-rustypot | 6 months ago | |
| dora-sam2 | 6 months ago | |
| dora-transformers | 7 months ago | |
| dora-ugv | 6 months ago | |
| dora-vad | 5 months ago | |
| dora-vggt | 6 months ago | |
| dora-yolo | 6 months ago | |
| dynamixel-client | 9 months ago | |
| feetech-client | 6 months ago | |
| gamepad | 6 months ago | |
| lebai-client | 9 months ago | |
| lerobot-dashboard | 9 months ago | |
| llama-factory-recorder | 6 months ago | |
| mujoco-client | 9 months ago | |
| openai-proxy-server | 6 months ago | |
| opencv-plot | 6 months ago | |
| opencv-video-capture | 6 months ago | |
| pyarrow-assert | 6 months ago | |
| pyarrow-sender | 6 months ago | |
| replay-client | 9 months ago | |
| terminal-input | 6 months ago | |
| terminal-print | 6 months ago | |
| video-encoder | 9 months ago | |
| README.md | 10 months ago | |
This hub contains useful pre-built nodes for Dora.
cd node-hub
dora new your-node-name --lang python --kind node
cd ./your-node-name
uv venv --seed -p 3.11
uv pip install -e . # Install
uv run ruff check . --fix # Format
uv run ruff check . # Lint
uv run pytest . # Test
uv add numpy # for example
The package is then added to your
pyproject.toml
Modify the code within main.py in your liking.
Create a PR and let the CI/CD run test on it 🙋
The structure of the node hub is as follows (please use the same structure if you need to add a new node):
node-hub/
└── your-node/
├── README.md
├── your-node
│ ├── __init__.py
│ ├── __main__.py
│ └── main.py
├── pyproject.toml
└── tests
└── test_<your-node>.py
The idea is to make a pyproject.toml file that will install the required dependencies for the node and attach main
function of the node inside a callable script in your environment.
To do so, you will need to add a main function inside the main.py file.
def main():
pass
And then you will need to adapt the following pyproject.toml file:
[project]
name = "[name of the node e.g. video-encoder, with '-' to replace spaces]"
version = "0.1"
authors = [{ name = "[Pseudo/Name]", email = "[email]" }]
description = "Dora Node for []"
readme = "README.md"
license = { text = "MIT" }
dependencies = [
"dora-rs >= 0.3.8",
]
[project.scripts]
[name of the node with '-' to replace spaces] = "[name of the node with '_' to replace spaces].main:main"
[tool.ruff.lint]
extend-select = [
"D", # pydocstyle
"UP", # Ruff's UP rule
"PERF", # Ruff's PERF rule
"RET", # Ruff's RET rule
"RSE", # Ruff's RSE rule
"NPY", # Ruff's NPY rule
"N", # Ruff's N rule
"I", # Ruff's I rule
]
Finally, the README.md file should explicit all inputs/outputs of the node and how to configure it in the YAML file.
[project]
name = "opencv-plot"
version = "0.1"
authors = [
"Haixuan Xavier Tao <tao.xavier@outlook.com>",
"Enzo Le Van <dev@enzo-le-van.fr>"
]
description = "Dora Node for plotting data with OpenCV"
readme = "README.md"
license = { text = "MIT" }
requires-python = ">=3.7"
dependencies = [
"dora-rs >= 0.3.8",
]
[dependency-groups]
dev = ["pytest >=8.1.1", "ruff >=0.9.1"]
[project.scripts]
opencv-plot = "opencv_plot.main:main"
[tool.ruff.lint]
extend-select = [
"D", # pydocstyle
"UP", # Ruff's UP rule
"PERF", # Ruff's PERF rule
"RET", # Ruff's RET rule
"RSE", # Ruff's RSE rule
"NPY", # Ruff's NPY rule
"N", # Ruff's N rule
"I", # Ruff's I rule
]
pyproject.toml inorder to make sure that linting and testing are exempted for that dependency.Correct approach:
[tool.ruff]
exclude = ["dora_magma/Magma"]
[tool.black]
extend.exclude = "dora_magma/Magma"
Incorrect Approach:
[tool.ruff]
exclude = ["dora-magma/dora_magma/Magma"]
[tool.black]
extend.exclude = "dora_magma/Magma"
dora-magma is root folder of the node.cd node-hub
dora new your-node-name --lang rust --kind node
cd ./your-node-name
Cargo.toml file:[workspace]
members = [
...
"node-hub/your-node-name"
]
Cargo.toml file in your node to use the workspace version of dora-node-api:[dependencies]
dora-node-api = { workspace = true }
The structure of the node hub for Rust is as follows (please use the same structure if you need to add a new node):
node-hub/
└── your-node/
├── Cargo.toml
├── README.md
└── src/
└── main.rs
The README.md file should explicit all inputs/outputs of the node and how to configure it in the YAML file.
This project is licensed under Apache-2.0. Check out NOTICE.md for more information.
DORA (Dataflow-Oriented Robotic Architecture) is middleware designed to streamline and simplify the creation of AI-based robotic applications. It offers low latency, composable, and distributed datafl
Rust Python TOML Markdown C other