""" Pydantic schemas for TOAR database """ from typing import List from pydantic import BaseModel, validator, Field import datetime as dt from .models import DF_enum class DataBase(BaseModel): datetime: dt.datetime = Field(..., description="date and time of observation") value: float = Field(..., description="variable value at datetime") flags: str = Field(..., description="flags") timeseries_id: int = Field(..., description="ID of timeseries") @validator('flags') def check_flags(cls, v): return tuple(filter(lambda x: x.value == int(v), DF_enum))[0].string class DataCreate(DataBase): pass @validator('flags') def check_flags(cls, v): if tuple(filter(lambda x: x.string == v, DF_enum)): return v else: raise ValueError(f"data flag not known: {v}") class Data(DataBase): class Config: orm_mode = True