major optimization in Storage, Table, Row (2x), thanks Michele
This commit is contained in:
@@ -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
@@ -6289,11 +6289,9 @@ class Row(dict):
|
|||||||
this is only used to store a Row
|
this is only used to store a Row
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __getattr__(self, key):
|
__setattr__ = dict.__setitem__
|
||||||
return self[key]
|
__getattr__ = dict.__getitem__
|
||||||
|
__delattr__ = dict.__delitem__
|
||||||
def __setattr__(self, key, value):
|
|
||||||
self[key] = value
|
|
||||||
|
|
||||||
def __getitem__(self, key):
|
def __getitem__(self, key):
|
||||||
key=str(key)
|
key=str(key)
|
||||||
@@ -6307,8 +6305,10 @@ class Row(dict):
|
|||||||
key = m.group(2)
|
key = m.group(2)
|
||||||
return dict.__getitem__(self, key)
|
return dict.__getitem__(self, key)
|
||||||
|
|
||||||
def __call__(self,key):
|
__call__ = __getitem__
|
||||||
return self.__getitem__(key)
|
|
||||||
|
#def __call__(self,key):
|
||||||
|
# return self.__getitem__(key)
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
def __setitem__(self, key, value):
|
||||||
dict.__setitem__(self, str(key), value)
|
dict.__setitem__(self, str(key), value)
|
||||||
@@ -7498,15 +7498,15 @@ class Table(dict):
|
|||||||
'value must be a dictionary: %s' % value
|
'value must be a dictionary: %s' % value
|
||||||
dict.__setitem__(self, str(key), value)
|
dict.__setitem__(self, str(key), value)
|
||||||
|
|
||||||
def __getattr__(self, key):
|
__getattr__ = __getitem__
|
||||||
return self[key]
|
|
||||||
|
|
||||||
def __delitem__(self, key):
|
def __delitem__(self, key):
|
||||||
if isinstance(key, dict):
|
if isinstance(key, dict):
|
||||||
query = self._build_query(key)
|
query = self._build_query(key)
|
||||||
if not self._db(query).delete():
|
if not self._db(query).delete():
|
||||||
raise SyntaxError, 'No such record: %s' % key
|
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
|
raise SyntaxError, 'No such record: %s' % key
|
||||||
|
|
||||||
def __setattr__(self, key, value):
|
def __setattr__(self, key, value):
|
||||||
|
|||||||
+12
-8
@@ -38,14 +38,18 @@ class Storage(dict):
|
|||||||
>>> print o.a
|
>>> print o.a
|
||||||
None
|
None
|
||||||
"""
|
"""
|
||||||
def __getattr__(self, key):
|
__setattr__ = dict.__setitem__
|
||||||
return dict.get(self, key, None)
|
__delattr__ = dict.__delitem__
|
||||||
def __setattr__(self, key, value):
|
__getitem__ = dict.get
|
||||||
self[key] = value
|
__getattr__ = dict.get
|
||||||
def __delattr__(self, key):
|
# def __getattr__(self, key):
|
||||||
del self[key]
|
# return dict.get(self, key, None)
|
||||||
def __getitem__(self, key):
|
# def __setattr__(self, key, value):
|
||||||
return dict.get(self, key, None)
|
# self[key] = value
|
||||||
|
# def __getitem__(self, key):
|
||||||
|
# return dict.get(self, key, None)
|
||||||
|
# def __delattr__(self, key):
|
||||||
|
# del self[key]
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '<Storage %s>' % dict.__repr__(self)
|
return '<Storage %s>' % dict.__repr__(self)
|
||||||
def __getstate__(self):
|
def __getstate__(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user