Skip to content

Models

The models module defines protocols and base models used for serialization and deserialization of data.

Overview

Module Description
Base Base model classes (ModelProtocol, ModelBase, PydanticBaseModel)
Status Status-related models
Unique IDs Unique identifier models
Version Version handling models
Data Sync Data synchronization models
Email Address Email address models

Base Classes

There are a few base classes that can be used to create data models:

  • ModelProtocol: A runtime-checkable protocol defining the serialization/deserialization interface
  • ModelBase: An abstract base class implementing the serialization protocol
  • PydanticBaseModel: The primary base class for creating data models (backed by Pydantic)
  • AwareIsoDateTime / IsoDateTime / IsoDate: Annotated Pydantic types for ISO 8601 datetime and date fields

Quick Start

from aibs_informatics_core.models.base import PydanticBaseModel

class MyModel(PydanticBaseModel):
    name: str
    value: int

# Serialize
model = MyModel(name="test", value=42)
json_str = model.to_json()

# Deserialize
restored = MyModel.from_json(json_str)