[project] name = "dora-webcam" version = "0.1.0" description = "Dora node that captures frames from a webcam and publishes them as std/media/v1/Image" 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. dependencies = [ "dora-rs >= 1.0.1", "numpy >= 2.0", "opencv-python >= 4.9", "pyarrow >= 17.0", ] [project.scripts] dora-webcam = "dora_webcam.main:main" [dependency-groups] dev = ["pymarkdownlnt >= 0.9.30", "pytest >= 8.1", "ruff >= 0.9"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["dora_webcam"] [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