major optimization in Storage, Table, Row (2x), thanks Michele

This commit is contained in:
mdipierro
2012-08-25 16:19:50 -05:00
parent 6dfd16b62a
commit 4079288a51
3 changed files with 23 additions and 19 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.00.0 (2012-08-25 15:49:58) dev
Version 2.00.0 (2012-08-25 16:19:46) dev
+10 -10
View File
@@ -6289,11 +6289,9 @@ class Row(dict):
this is only used to store a Row
"""
def __getattr__(self, key):
return self[key]
def __setattr__(self, key, value):
self[key] = value
__setattr__ = dict.__setitem__
__getattr__ = dict.__getitem__
__delattr__ = dict.__delitem__
def __getitem__(self, key):
key=str(key)
@@ -6307,8 +6305,10 @@ class Row(dict):
key = m.group(2)
return dict.__getitem__(self, key)
def __call__(self,key):
return self.__getitem__(key)
__call__ = __getitem__
#def __call__(self,key):
# return self.__getitem__(key)
def __setitem__(self, key, value):
dict.__setitem__(self, str(key), value)
@@ -7498,15 +7498,15 @@ class Table(dict):
'value must be a dictionary: %s' % value
dict.__setitem__(self, str(key), value)
def __getattr__(self, key):
return self[key]
__getattr__ = __getitem__
def __delitem__(self, key):
if isinstance(key, dict):
query = self._build_query(key)
if not self._db(query).delete():
raise SyntaxError, 'No such record: %s' % key
elif not str(key).isdigit() or not self._db(self._id == key).delete():
elif not str(key).isdigit() or \
not self._db(self._id == key).delete():
raise SyntaxError, 'No such record: %s' % key
def __setattr__(self, key, value):
+12 -8
View File
@@ -38,14 +38,18 @@ class Storage(dict):
>>> print o.a
None
"""
def __getattr__(self, key):
return dict.get(self, key, None)
def __setattr__(self, key, value):
self[key] = value
def __delattr__(self, key):
del self[key]
def __getitem__(self, key):
return dict.get(self, key, None)
__setattr__ = dict.__setitem__
__delattr__ = dict.__delitem__
__getitem__ = dict.get
__getattr__ = dict.get
# def __getattr__(self, key):
# return dict.get(self, key, None)
# def __setattr__(self, key, value):
# self[key] = value
# def __getitem__(self, key):
# return dict.get(self, key, None)
# def __delattr__(self, key):
# del self[key]
def __repr__(self):
return '<Storage %s>' % dict.__repr__(self)
def __getstate__(self):