Metadata-Version: 2.5
Name: pdk-schema
Version: 0.0.2
Summary: Canonical PDK description 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: proto
Requires-Dist: protobuf>=7.35.1; extra == 'proto'
Description-Content-Type: text/markdown

# pdk-schema

Canonical declarations for describing photonic and electronic PDKs.

Version `0.0.2` adds `MaterialCard`, material regimes, dispersion models,
perturbations, provenance, validity, and physical values. It retains the
complete `LayerStack` API published in `0.0.1`.

```python
from pdk_schema import Index, MaterialCard, Provenance, Regime, ScalarValue

silicon = MaterialCard(
    name="Si",
    optical=Regime(
        temperature_ref=300.0,
        provenance=Provenance(
            source="literature",
            label="example optical model",
            maturity="simulation",
            citations=[],
            comment=None,
            url=None,
            data_url=None,
            info={},
        ),
        permittivity=Index(
            validity=None,
            variation=None,
            conductivity=None,
            n=ScalarValue(unit="", value=3.48),
            k=None,
        ),
        conductivity=None,
        permeability=None,
        perturbations=[],
        info={},
    ),
    rf=None,
    info={},
)

print(silicon.model_dump())
```

Install the optional Protobuf runtime to use the `to_bytes()` and
`from_bytes()` methods:

```bash
pip install "pdk-schema[proto]==0.0.2"
```

Model-card declarations are still under development and are not included in
this release.
