Skip to content

Commit

Permalink
feat: add set_manager
Browse files Browse the repository at this point in the history
b.c. pydantic does not allow defining custom property setter
via a property decorator
  • Loading branch information
aaraney committed Feb 1, 2024
1 parent de02210 commit af5d48f
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions python/lib/core/dmod/core/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,7 @@ def _serialize_datetime(self: "Dataset", value: Optional[datetime]) -> Optional[

def __init__(self, manager: DatasetManager = None, **kwargs):
super().__init__(**kwargs)

self._manager = manager if isinstance(manager, DatasetManager) else None

if manager is not None:
# pydantic will not validate this, so we need to check it
if not isinstance(manager.uuid, UUID):
raise ValueError(f"Expected UUID got {type(manager.uuid)}")
self.manager_uuid = manager.uuid
self.set_manager(manager)

def __eq__(self, other):
now = datetime.now()
Expand Down Expand Up @@ -211,8 +204,16 @@ def manager(self) -> Optional[DatasetManager]:
"""
return self._manager

@manager.setter
def manager(self, value: DatasetManager = None):
def set_manager(self, value: Union[DatasetManager, None]):
"""
Sets the ::class:`DatasetManager` and updates the
::attribute:`manager_uuid` property on this instances.
Parameters
----------
value: DatasetManager | None
The new value for ::attribute:`manager`.
"""
self._manager = value if isinstance(value, DatasetManager) else None

if value is not None:
Expand Down

0 comments on commit af5d48f

Please sign in to comment.