pydantic_model_validator
What it is
A small utility function that validates a payload against a given Pydantic BaseModel class, logs validation errors, and re-raises them.
Public API
pydantic_model_validator(model: Any, payload: Any, message: str) -> None- Validates
payloadusingmodel.model_validate(payload). - Ensures
modelis a class and a subclass ofpydantic.BaseModel. - On validation failure:
- Logs an error via
naas_abi_core.utils.Logger.logger. - Re-raises the original
pydantic.ValidationError.
- Logs an error via
- Validates
Configuration/Dependencies
- Dependencies
pydantic.BaseModelandpydantic.ValidationErrornaas_abi_core.utils.Logger.logger(must be available/importable)
- Pydantic version note
- Uses
model.model_validate(...), which is the Pydantic v2 validation API.
- Uses
Usage
from pydantic import BaseModel
from naas_abi_core.engine.engine_configuration.utils.PydanticModelValidator import (
pydantic_model_validator,
)
class User(BaseModel):
id: int
name: str
payload = {"id": 1, "name": "Ada"}
# Raises ValidationError on invalid payload, otherwise returns None
pydantic_model_validator(User, payload, message="Invalid user payload")
Caveats
modelmust be a class, not an instance (must satisfyisinstance(model, type)).modelmust inherit frompydantic.BaseModel; otherwise aTypeErroris raised.- The function does not return the validated model instance; it only validates and raises on failure.