From c85d038700c18630f372ec515cb63b2e3864ffc0 Mon Sep 17 00:00:00 2001 From: "Morgan 'ARR\\!' Allen" Date: Thu, 10 Jul 2025 11:42:34 -0700 Subject: [PATCH] enable easy dumps/loads on BaseObject via .save_keys --- freecad/kiconnect/bases/BaseObject.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/freecad/kiconnect/bases/BaseObject.py b/freecad/kiconnect/bases/BaseObject.py index 922ca9e..5aa8fd5 100644 --- a/freecad/kiconnect/bases/BaseObject.py +++ b/freecad/kiconnect/bases/BaseObject.py @@ -2,6 +2,8 @@ class BaseObject: EXTENSIONS = [] TYPE = None + save_keys = [] + def __init__(self, feature): self.feature = feature @@ -62,5 +64,21 @@ class BaseObject: def sync_to(self): pass - def __getstate__(self): - return None + def dumps(self): + data = [ getattr(self, 'TYPE') ] + + if len(self.save_keys) > 0: + for key in self.save_keys: + try: + data.append(getattr(self, key)) + except Exception as e: + #XXX logging + print(e) + + return tuple(data) + + def loads(self, state): + self.Type = state[0] + + for idx, key in enumerate(self.save_keys): + setattr(self, key, state[idx + 1])