Source code for chap_core.database.feature_tables

from typing import List, Optional

from sqlalchemy import Column, JSON
from sqlmodel import Field

from chap_core.database.base_tables import DBModel
from chap_core.model_spec import PeriodType


[docs] class FeatureTypeBase(DBModel): display_name: str description: str
[docs] class FeatureTypeRead(FeatureTypeBase): name: str
[docs] class FeatureType(FeatureTypeBase, table=True): name: str = Field(str, primary_key=True)
[docs] class FeatureSource(DBModel, table=True): name: str = Field(primary_key=True) display_name: str feature_type: str = Field(foreign_key="featuretype.name") provider: str supported_period_types: List[PeriodType] = Field(default_factory=list, sa_column=Column(JSON))