Skip to content

Pydantic compatibility

Maturity labels

  • Now: Stable and supported in current releases.
  • Preview: Usable today, but behavior and APIs may evolve.
  • Planned: Not yet implemented.

Note

Status: Now

What carries over

  • Type-driven record definitions
  • Parsing/coercion at model boundaries

What Omnipy adds

  • Continuous validation after parsing
  • Type-mimicking non-record containers
  • Native integration with datasets and compute abstractions

Example: Pydantic row spec inside Omnipy

>>> import omnipy as om
>>> import pydantic as pyd
>>> class BedRow(pyd.v1.BaseModel):
...     chrom: str
...     start: int
...     end: int
...     name: str | None = None
>>> om.Model[BedRow]({'chrom': 'chr1', 'start': '10', 'end': 20})

Trust-builder note

If you are already productive with Pydantic, start with your familiar schema style and add Omnipy features incrementally.