Implement tracking changes of individual database object values
This commit is contained in:
parent
5920b8e6c2
commit
16ac4906d0
1 changed files with 20 additions and 1 deletions
|
@ -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):
|
||||
|
|
Loading…
Add table
Reference in a new issue