diff --git a/src/aare/common/models.py b/src/aare/common/models.py index 697e24ec..5c5927d2 100644 --- a/src/aare/common/models.py +++ b/src/aare/common/models.py @@ -3,7 +3,7 @@ import re from enum import Enum from typing import Annotated, Literal, Tuple, List, Optional from dataclasses import dataclass -from pydantic import BaseModel, Field, field_validator, AfterValidator +from pydantic import BaseModel, Field, field_validator, AfterValidator, ConfigDict from aare.common.coordinate import Coordinate, positive_coords from aare.common.diffraction_geometry import DiffractionGeometry @@ -53,6 +53,8 @@ class PuckLoadedInfo(BaseModel): class DataCollectionParameters(BaseModel): + model_config = ConfigDict(from_attributes=True) + directory: Optional[str] = None oscillation: Optional[float] = None # Only accept positive float exposure: Optional[float] = None # Only accept positive floats between 0 and 1 @@ -82,12 +84,7 @@ class DataCollectionParameters(BaseModel): def to_dict(self): """Convert the model instance to a dictionary.""" - return self.dict( - exclude_unset=True - ) # Use this built-in method for serialization - - class Config: - from_attributes = True + return self.model_dump(exclude_unset=True) @field_validator("directory", mode="after") @classmethod