AGENTS.md was a per-module tour of the code, which restated what the code says and had already drifted: it described the example as emitting three inputs when it emits five. It is now the conventions an agent cannot infer -- dora version, uv, ruff, numpy docstrings, the platform requirement, act, and what not to do -- and nothing else. The gotchas it carried are explained at their point of use in the code instead. pymarkdown lints the markdown, configured in pyproject.toml and run in CI beside ruff. It caught a fenced block with no language and an over-long table row. ruff's pydocstyle convention moves to numpy. GEMINI.md is removed.
54 lines
1.5 KiB
TOML
54 lines
1.5 KiB
TOML
[project]
|
|
name = "dora-image-view"
|
|
version = "0.1.0"
|
|
description = "Dora node that overlays bounding boxes and text on an image and displays it in an OpenCV window"
|
|
readme = "README.md"
|
|
license = { text = "MIT" }
|
|
requires-python = ">=3.11"
|
|
|
|
# Every dependency ships prebuilt wheels for linux-x86_64, linux-aarch64 and
|
|
# macos-arm64, so the node installs with no system packages and no compiler on
|
|
# any of them. That is the whole reason this node is Python and not Rust: the
|
|
# OpenCV Rust bindings generate themselves from installed headers and would put
|
|
# libopencv-dev and libclang-dev on every build machine and every arch.
|
|
dependencies = [
|
|
"dora-rs >= 1.0.1",
|
|
"numpy >= 2.0",
|
|
"opencv-python >= 4.9",
|
|
"pillow >= 10.4",
|
|
"pillow-avif-plugin >= 1.4",
|
|
"pyarrow >= 17.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
dora-image-view = "dora_image_view.main:main"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pymarkdownlnt>=0.9.40",
|
|
"pytest >= 8.1",
|
|
"ruff >= 0.9",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["dora_image_view"]
|
|
|
|
[tool.ruff.lint]
|
|
extend-select = ["D", "I", "N", "RET", "UP"]
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "numpy"
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
# Test names are the documentation here; a docstring would only repeat them.
|
|
"tests/*" = ["D1"]
|
|
|
|
[tool.pymarkdown]
|
|
# The prose here wraps near ruff's 88; 100 leaves room for a long link or table
|
|
# row without inviting unwrapped paragraphs.
|
|
plugins.md013.line_length = 100
|