Implement tracking changes of individual database object values

This commit is contained in:
XANTRONIX Development 2024-12-04 14:35:46 -05:00
parent 5920b8e6c2
commit 16ac4906d0

View file

@ -7,7 +7,24 @@ class DatabaseOrder(enum.Enum):
DESC = 2
class DatabaseTable():
pass
__slots__ = '__dirty__', '__dirty_columns__',
def __init__(self):
object.__setattr__(self, '__dirty__', False)
object.__setattr__(self, '__dirty_columns__', dict())
def __reset__(self):
object.__setattr__(self, '__dirty__', False)
object.__setattr__(self, '__dirty_columns__', {k: 0 for k in self.columns})
def __setattr__(self, k, v):
object.__setattr__(self, k, v)
values = object.__getattribute__(self, '__dirty_columns__')
if k in values:
object.__setattr__(self, '__dirty__', True)
values[k] += 1
class DatabaseTableCursor():
__slots__ = 'cr', 'table',
@ -33,6 +50,8 @@ class DatabaseTableCursor():
except IndexError:
setattr(obj, name, None)
obj.__reset__()
return obj
def fetchone(self):