[project]
name = "duck-preview"
version = "0.1.0"
description = "Realtime camera preview application with telemetry"
requires-python = ">=3.12"
dependencies = [
    "PySide6>=6.7",
    "psutil>=6.0",
]

[project.optional-dependencies]
# Install inference support: pip install -e ".[inference]"
# or: pip install ultralytics numpy
inference = [
    "ultralytics>=8.0",
    "numpy>=1.24",
]

[project.scripts]
duck-preview = "app.main:main"

[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]
addopts = "-v"

[tool.ruff]
target-version = "py312"
line-length = 100

[tool.ruff.lint]
select = [
    "E",   # pycodestyle errors
    "W",   # pycodestyle warnings
    "F",   # pyflakes
    "I",   # isort
    "UP",  # pyupgrade
    "B",   # flake8-bugbear
    "N",   # pep8-naming
]
ignore = [
    "B008",  # do not perform function calls in default arguments
]

[tool.ruff.lint.isort]
known-first-party = ["app"]

[tool.ruff.format]
quote-style = "double"
indent-style = "space"
