From eba33f14339a47c0ccbc14a688bc5a870b612371 Mon Sep 17 00:00:00 2001 From: dancohen Date: Wed, 12 Nov 2025 15:44:55 +0200 Subject: [PATCH] Added serialization hook for aapiobject --- src/aapi/bases.py | 4 ++++ src/aapi/job.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/aapi/bases.py b/src/aapi/bases.py index b330364..8697ffa 100644 --- a/src/aapi/bases.py +++ b/src/aapi/bases.py @@ -34,6 +34,10 @@ def as_aapi_dict(self, ignore_event_type=True): if attrs.has(self): for field in attrs.fields(self.__class__): value = self.__getattribute__(field.name) + ## API serialization hook + if "_aapi_serialize" in field.metadata: + value = field.metadata["_aapi_serialize"](value) + aapi_repr = field.metadata.get("_aapi_repr_") if value in [None, [], {}]: diff --git a/src/aapi/job.py b/src/aapi/job.py index f1378f2..154bad4 100644 --- a/src/aapi/job.py +++ b/src/aapi/job.py @@ -88,7 +88,7 @@ class Units(enum.Enum): Days = "Days" times: int = attrs.field(kw_only=True, default=None, metadata={ - '_aapi_repr_': 'Times'}) + '_aapi_repr_': 'Times', '_aapi_serialize': lambda v: str(v) if v is not None else None}) every: str = attrs.field(kw_only=True, default=None, metadata={ '_aapi_repr_': 'Every'}) from_: From = attrs.field(kw_only=True, default=None, metadata={