enable easy dumps/loads on BaseObject via .save_keys

This commit is contained in:
Morgan 'ARR\!' Allen 2025-07-10 11:42:34 -07:00
parent bdd7ea4684
commit c85d038700

View file

@ -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])