Metadata-Version: 2.5
Name: pdk-schema
Version: 0.1.0
Summary: Canonical PDK schema powered by GDSFactory.
Project-URL: Repository, https://github.com/doplaydo/pdk-schema
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: pydantic>=2
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == 'dev'
Requires-Dist: ruff>=0.16; extra == 'dev'
Requires-Dist: tbump<7,>=6.11; extra == 'dev'
Provides-Extra: proto
Requires-Dist: protobuf>=5; extra == 'proto'
Description-Content-Type: text/markdown

# pdk-schema

The canonical PDK description schema: layer stacks, materials, process variation, and model cards.
Declarations only — no validators, no evaluation, no simulator adapters.

| File | Contents |
|------|----------|
| [SPEC.md](SPEC.md) | Normative shapes and the silent-failure invariants |
| [CONTEXT.md](CONTEXT.md) | Vocabulary, physics constraints, rationale, and open decisions |
| [pdk_schema/](pdk_schema/) | Pydantic v2 declarations — [package guide](pdk_schema/README.md) |
| [docs/model-cards.md](docs/model-cards.md) | Model-card authoring, backend defaults, and Circulax compatibility |
| [docs/releases.md](docs/releases.md) | Version bumps and releases with tbump |
| [proto/](proto/) | Development-only Protobuf placeholder — [guide](proto/README.md) |
| [obfuscation.md](obfuscation.md) | Notes on obfuscated foundry data |

## Inspect a shape

Run from the repository root:

```bash
uv run --with pydantic python -c \
  "from pdk_schema import MaterialCard; print(MaterialCard.model_json_schema())"
```

## Regenerate the Protobuf bindings

The supported release API is Pydantic and JSON. Protobuf definitions, the `proto`
extra, and binary conversion methods remain development placeholders. Generated
bindings are not packaged, and binary serialization is not supported by this release.

```bash
make
```

This needs `protoc` on `PATH`. It writes `proto/generated/`.
