Metadata-Version: 2.4
Name: specreq
Version: 0.1.1
Summary: Write product specs as Python code.
Author-email: William Hogben <will@willhogben.com>
License-Expression: MIT
Project-URL: Homepage, https://willhogben.com
Project-URL: Repository, https://github.com/whogben/specreq
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic>=2.0
Requires-Dist: typer>=0.9
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"
Dynamic: license-file

# specreq

Write product specs as Python code.
1. Define reusable elements by subclassing `Requirement` — override `validate(self, product: Path)` for each node, or `_validate` to control how children are validated.
2. Instance reusable elements to create specific product specs.
3. Run `specreq <spec> <product> [--save] [--strict]` — `--save` writes the requirement tree as JSON; `--strict` turns off exception catching inside `_validate` (fail fast). Default collects exceptions with tracebacks.
