# -*- coding: utf-8 -*- from enum import Enum from typing import List, Optional from pydantic import BaseModel from app.models.space import Space class AirValveSpeed(int, Enum): off = 0 low = 1 medium = 2 high = 3 auto = -1 class BaseEquipment(BaseModel): id: str running_status: Optional[bool] = False setting_temperature: Optional[float] = 0.0 class FCU(BaseEquipment): air_valve_speed: Optional[AirValveSpeed] = AirValveSpeed.off water_valve_status: Optional[bool] = False space: Space class VAVBox(BaseEquipment): spaces: List[Space] if __name__ == '__main__': external_data = { 'id': '123', 'running_status': True } fcu = FCU(**external_data) print(fcu.id) print(fcu.setting_temperature) fcu.setting_temperature = 23.5 print(fcu.setting_temperature) print(isinstance(fcu, FCU))