def getattr(self, object):
return getattr(object, self.key, None)
- def setattr(self, object, value):
- clean_setattr(object, self.key, value)
+ def setattr(self, object, value, clean = False):
+ if clean:
+ clean_setattr(object, self.key, value)
+ else:
+ setattr(object, self.key, value)
def hash_key(self):
return "ColumnProperty(%s)" % repr([hash_key(c) for c in self.columns])
def keys(self):
return self.list
-
+
def update(self, dict):
for key in dict.keys():
self.__setitem__(key, dict[key])
-
+
def setdefault(self, key, value):
if not self.has_key(key):
self.__setitem__(key, value)
return value
else:
return self.__getitem__(key)
-
+
def values(self):
return map(lambda key: self[key], self.list)
def iteritems(self):
return iter([(key, self[key]) for key in self.keys()])
-
+
def __setitem__(self, key, object):
if not self.has_key(key):
self.list.append(key)
-
dict.__setitem__(self, key, object)
def __getitem__(self, key):
return dict.__getitem__(self, key)
-
class ThreadLocal(object):
def __init__(self):
object.__setattr__(self, 'tdict', {})
-
def __getattribute__(self, key):
try:
return object.__getattribute__(self, 'tdict')["%d_%s" % (thread.get_ident(), key)]
except KeyError:
raise AttributeError(key)
-
def __setattr__(self, key, value):
object.__getattribute__(self, 'tdict')["%d_%s" % (thread.get_ident(), key)] = value
-
class HashSet(object):
def __init__(self, iter = None):
self.append(i)
def __iter__(self):
return iter(self.map.values())
+
def append(self, item):
self.map[item] = item
+
def __delitem__(self, key):
del self.map[key]
+
def __getitem__(self, key):
return self.map[key]
del u.addresses[1]
m.save(u)
addresstable = engine.ResultProxy(addresses.select(addresses.c.address_id.in_(a.address_id, a2.address_id)).execute()).fetchall()
+ print repr(addresstable)
self.assert_(addresstable[0].row == (a.address_id, u.user_id, 'one2many@test.org'))
self.assert_(addresstable[1].row == (a2.address_id, None, 'lala@test.org'))