[build-system] requires = ["setuptools>=61"] build-backend = "setuptools.build_meta" [project] name = "hwcontract" version = "0.4.2" description = "Temporal assertions for real hardware traces: judge pulse timing, serial logs and decoded events against YAML contracts (MCP server, pytest plugin, GitHub Action)" readme = "README.md" requires-python = ">=3.9" license = { text = "MIT" } authors = [{ name = "hwcontract authors" }] keywords = ["mcp", "hardware", "firmware", "embedded", "logic-analyzer", "ws2812", "dshot", "sigrok"] classifiers = [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: System :: Hardware", "Topic :: Software Development :: Embedded Systems", ] dependencies = ["pyyaml>=6"] [project.optional-dependencies] serial = ["pyserial>=3.5"] # live serial capture (check_serial) untrusted = ["google-re2>=1.1"] # ReDoS-immune regex for untrusted serial contracts all = ["pyserial>=3.5", "google-re2>=1.1"] dev = ["pytest>=8"] # tests/ suite [project.scripts] hwcontract = "hwcontract.server:main" [project.urls] Repository = "https://github.com/MohibShaikh/hwcontract" Issues = "https://github.com/MohibShaikh/hwcontract/issues" Changelog = "https://github.com/MohibShaikh/hwcontract/releases" [tool.setuptools] packages = ["hwcontract"] [tool.setuptools.package-data] hwcontract = ["examples/*.yaml", "examples/*.json"] [tool.pytest.ini_options] testpaths = ["tests"] # the plugin has its own suite under pytest-hwcontract/