Module aws_lambda_powertools.utilities.idempotency.serialization.pydantic
Classes
class PydanticSerializer (model: type[BaseModel])
-
Pydantic serializer for idempotency models
Parameters
model
:Model
- Pydantic model to be used for serialization
Expand source code
class PydanticSerializer(BaseIdempotencyModelSerializer): """Pydantic serializer for idempotency models""" def __init__(self, model: type[BaseModel]): """ Parameters ---------- model: Model Pydantic model to be used for serialization """ self.__model: type[BaseModel] = model def to_dict(self, data: BaseModel) -> dict: return data.model_dump() def from_dict(self, data: dict) -> BaseModel: return self.__model.model_validate(data) @classmethod def instantiate(cls, model_type: Any) -> BaseIdempotencySerializer: model_type = get_actual_type(model_type=model_type) if model_type is None: raise IdempotencyNoSerializationModelError("No serialization model was supplied") if not issubclass(model_type, BaseModel): raise IdempotencyModelTypeError("Model type is not inherited from pydantic BaseModel") return cls(model=model_type)
Ancestors
Methods
def from_dict(self, data: dict) ‑> pydantic.main.BaseModel
def to_dict(self, data: BaseModel) ‑> dict
Inherited members