Metadata-Version: 2.4
Name: specfence
Version: 0.0.11
Summary: Ensures generated code does no more than your spec demands.
Author: Peter Lavigne
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: License :: OSI Approved :: Apache Software License
Requires-Dist: typer==0.21.1
Requires-Dist: libcst>=1.8.6
Requires-Python: >=3.12
Project-URL: Homepage, https://github.com/Peter-Lavigne/specfence
Project-URL: Repository, https://github.com/Peter-Lavigne/specfence
Description-Content-Type: text/markdown

# specfence

A proof-of-concept implementation of Specification Fencing (essay coming soon).

## Demo

`example/fizzbuzz.py` contains a simple implementation of FizzBuzz, but with scattered `print` and logging statements that do not change any observed behavior as defined by `example/fizzbuzz_test.py`. Running `specfence` on this file identifies these lines as specification fencing violations, and suggests deleting them.

```bash
$ uvx specfence example/fizzbuzz.py example/fizzbuzz_test.py
 8| print("FizzBuzz!")
11| logger.info("Divisible by 3")
14| logger.info("Divisible by 5")
17| print("Returning number")

4 specification fencing violations found. Delete these lines as they do not change any observed behavior.
```
