Source code for target.example_generics

from typing import Generic, TypeVar, Optional, List

from pydantic import BaseModel, field_validator

DataT = TypeVar('DataT')


[docs] class Error(BaseModel): """HTTP error representation.""" code: int message: str
[docs] class DataModel(BaseModel): """Payload representation.""" numbers: List[int] people: List[str]
[docs] class Response(BaseModel, Generic[DataT]): """HTTP Response representation.""" data: Optional[DataT] error: Optional[Error]
[docs] @field_validator('error') def check_consistency(cls, v, values): if v is not None and values['data'] is not None: raise ValueError('must not provide both data and error') if v is None and values.get('data') is None: raise ValueError('must provide data or error') return v