Source code for target.example_generics

from typing import Generic, TypeVar, Optional, List

from pydantic import BaseModel, validator
from pydantic.generics import GenericModel

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(GenericModel, Generic[DataT]): """HTTP Response representation.""" data: Optional[DataT] error: Optional[Error]
[docs] @validator('error', always=True) 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