[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