from pydantic import Field, field_validator
from typing import List, Union
from .baseModels import IgnoreExtra
[docs]
class ShutterElement(IgnoreExtra):
"""Laser info model."""
interlocks: List[str] = Field(alias="shutter_interlock_names", default=[])
"""Names of shutter interlocks."""
@field_validator("interlocks", mode="before")
@classmethod
def validate_interlocks(cls, v: Union[str, List]) -> List[str]:
if isinstance(v, str):
return list(map(str.strip, v.split(",")))
elif isinstance(v, (list, tuple)):
return v
else:
raise ValueError("interlocks should be a string or a list of strings")
[docs]
class ValveElement(IgnoreExtra):
"""Valve info model."""