|
|
@@ -0,0 +1,39 @@
|
|
|
+[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
|