[project]
name = "dune-weaver"
version = "1.0.0"
description = "Web-controlled kinetic sand table system"
requires-python = ">=3.9"

[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
markers = [
    "hardware: marks tests requiring real hardware (skip in CI)",
    "slow: marks slow tests",
]
addopts = [
    "-v",
    "--tb=short",
    "--strict-markers",
]
filterwarnings = [
    "ignore::DeprecationWarning",
]

[tool.coverage.run]
relative_files = true
source = ["modules", "main.py"]
omit = [
    "tests/*",
    "*/__pycache__/*",
]

[tool.coverage.report]
exclude_lines = [
    "pragma: no cover",
    "if TYPE_CHECKING:",
    "raise NotImplementedError",
    "if __name__ == .__main__.:",
]
show_missing = true
