Files
cristhian 7eeb83bf6d
validate / validate (pull_request) Successful in 59m14s
scope pytest to this repository's tests
`dora run` vendors a `git:` node's source into git/ inside the checkout, and
pytest collected that node's tests along with these: running the webcam example
and then the test suite reported 67 tests, 26 of them another project's. A
failure there would have gone red here, for a reason no one would find quickly.
2026-09-15 06:51:02 -03:00

61 lines
1.8 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.pytest.ini_options]
# Only this repository's tests. `dora run` vendors a `git:` node's source into
# git/ inside the checkout, and pytest would otherwise collect that node's tests
# too -- reporting another project's results as this one's, and going red when
# they fail.
testpaths = ["tests"]
[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