Table, DAL and Row use self.__dict__=self

This commit is contained in:
mdipierro
2012-08-21 15:56:53 -05:00
parent fbb6efa5cf
commit 3843406ba9
2 changed files with 9 additions and 17 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.00.0 (2012-08-21 14:41:40) dev
Version 2.00.0 (2012-08-21 15:56:50) dev
+8 -16
View File
@@ -6281,6 +6281,9 @@ class Row(dict):
this is only used to store a Row
"""
def __init__(self):
self.__dict__ = self
def __getitem__(self, key):
key=str(key)
m = regex_table_field.match(key)
@@ -6299,12 +6302,6 @@ class Row(dict):
def __setitem__(self, key, value):
dict.__setitem__(self, str(key), value)
def __getattr__(self, key):
return self[key]
def __setattr__(self, key, value):
self[key] = value
def __str__(self):
### this could be made smarter
return '<Row ' + dict.__repr__(self) + '>'
@@ -6574,6 +6571,7 @@ class DAL(dict):
:fake_migrate_all (defaults to False). If sets to True fake migrates ALL tables
:attempts (defaults to 5). Number of times to attempt connecting
"""
self.__dict__ = self
if not decode_credentials:
credential_decoder = lambda cred: cred
else:
@@ -6993,14 +6991,11 @@ def index():
def __setitem__(self, key, value):
dict.__setitem__(self, str(key), value)
def __getattr__(self, key):
return self[key]
def __setattr__(self, key, value):
if key[:1]!='_' and key in self:
raise SyntaxError, \
'Object %s exists and cannot be redefined' % key
self[key] = value
dict.__setattr__(self,key,value)
def __repr__(self):
return '<DAL ' + dict.__repr__(self) + '>'
@@ -7202,7 +7197,7 @@ class Table(dict):
:raises SyntaxError: when a supplied field is of incorrect type.
"""
self.__dict__ = self
self._actual = False # set to True by define_table()
self._tablename = tablename
self._sequence_name = args.get('sequence_name',None) or \
@@ -7273,7 +7268,7 @@ class Table(dict):
tmp = field.uploadfield = '%s_blob' % field.name
if isinstance(field.uploadfield,str) and \
not [f for f in fields if f.name==field.uploadfield]:
fields.append(self._db.Field(field.uploadfield,'blob',default=''))
fields.append(Field(field.uploadfield,'blob',default=''))
lower_fieldnames = set()
reserved = dir(Table) + ['fields']
@@ -7472,13 +7467,10 @@ class Table(dict):
elif not str(key).isdigit() or not self._db(self._id == key).delete():
raise SyntaxError, 'No such record: %s' % key
def __getattr__(self, key):
return self[key]
def __setattr__(self, key, value):
if key[:1]!='_' and key in self:
raise SyntaxError, 'Object exists and cannot be redefined: %s' % key
self[key] = value
dict.__setattr__(self,key,value)
def __iter__(self):
for fieldname in self.fields: