from pydantic import BaseModel, Field, field_validator from typing import Optional class Bt_element(BaseModel): """Das sind beide BTMT Elemente""" teileid: str drehung: Optional [float] = Field(default=0.0,description="Rotation des Elements") hoehe: Optional [float] = Field(default=0.0,description="Hoehe des Elements") @classmethod def from_merkmale(cls, teileid: str, x: float, y: float, merkmale: dict) -> 'Bt_element': try: hoehe = float(merkmale.get("Höhe in Meter")) except Exception as e: hoehe = 0.0 try: drehung = float(merkmale.get("Drehung")) except Exception as e: drehung = 0.0 return cls( teileid = teileid, x = x, y = y, hoehe = hoehe, drehung = drehung )