Metadata-Version: 2.5
Name: fabcheck
Version: 0.2.0
Summary: Engine-free Python authoring and validation for design-rule decks
Project-URL: Repository, https://github.com/doplaydo/fabcheck
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: pydantic<3,>=2.11.3
Description-Content-Type: text/markdown

# fabcheck

GDSFactory's typed Python DSL for declaring DRC decks that makes complicated decks easy to **write, test and maintain**. Use FabCheck in [GF+](https://gdsfactory.com/plus/v2/) to **write your own DRC decks** and run them in the cloud. _(Local runner coming soon.)_

```sh
pip install fabcheck
```

Requires Python 3.11 or later. Run this Python code to create `rules.fcd`:

```python
from fabcheck import Deck

deck = Deck("example", units="um")
metal = deck.layer(10, 0, name="M1")
deck.rule("M1.WIDTH", "Metal must be at least 0.2 um wide", violations=metal.min_width(0.2))

deck.write("rules.fcd")
```

Export validates the deck without running geometry.

## Documentation

- [Examples](examples/README.md) and [authoring conventions](docs/authoring-conventions.md)
- [Operations reference](docs/operations-inventory.md)
- [Loading and exporting decks](docs/loading-decks.md)
- [Units and precision](docs/units-and-precision.md)
- [Model and validation](docs/foundation.md)
- [Testing and development](docs/validation-and-testing.md)
- [PyPI release process](docs/releasing.md)

[Apache-2.0 license](LICENSE).
