summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/mapper.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2005-09-17 18:34:25 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2005-09-17 18:34:25 +0000
commit7028cbc2a214595ef044f44f3c7d4d10c014dc43 (patch)
treea1126a39db839dc58ea38ee55b7a0360a31ab0b9 /lib/sqlalchemy/mapper.py
parenta7024527fbd1747f6b063de352e7b09ee18715e1 (diff)
downloadsqlalchemy-7028cbc2a214595ef044f44f3c7d4d10c014dc43.tar.gz
Diffstat (limited to 'lib/sqlalchemy/mapper.py')
-rw-r--r--lib/sqlalchemy/mapper.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/sqlalchemy/mapper.py b/lib/sqlalchemy/mapper.py
index 953c02d38..b7f5fd53e 100644
--- a/lib/sqlalchemy/mapper.py
+++ b/lib/sqlalchemy/mapper.py
@@ -22,7 +22,7 @@ import sqlalchemy.util as util
import sqlalchemy.objectstore as objectstore
import random, copy, types
-__ALL__ = ['eagermapper', 'eagerloader', 'lazymapper', 'lazyloader', 'eagerload', 'lazyload', 'mapper', 'lazyloader', 'lazymapper']
+__ALL__ = ['eagermapper', 'eagerloader', 'lazymapper', 'lazyloader', 'eagerload', 'lazyload', 'mapper', 'lazyloader', 'lazymapper', 'clear_mappers']
def relation(*args, **params):
if isinstance(args[0], Mapper):
@@ -39,6 +39,7 @@ def relation_loader(mapper, secondary = None, primaryjoin = None, secondaryjoin
def relation_mapper(class_, selectable, secondary = None, primaryjoin = None, secondaryjoin = None, table = None, properties = None, lazy = True, uselist = True, foreignkey = None, primary_keys = None, **options):
return relation_loader(mapper(class_, selectable, table=table, properties=properties, primary_keys=primary_keys, **options), secondary, primaryjoin, secondaryjoin, lazy = lazy, uselist = uselist, foreignkey = foreignkey, **options)
+# TODO: where do we want to register these mappers, register them against their classes/objects etc
_mappers = {}
def mapper(*args, **params):
hashkey = mapper_hash_key(*args, **params)
@@ -48,7 +49,10 @@ def mapper(*args, **params):
except KeyError:
m = Mapper(hashkey, *args, **params)
return _mappers.setdefault(hashkey, m)
-
+
+def clear_mappers():
+ _mappers.clear()
+
def eagerload(name):
return EagerLazySwitcher(name, toeager = True)
@@ -151,6 +155,7 @@ class Mapper(object):
def init(self):
[prop.init(key, self) for key, prop in self.props.iteritems()]
+ print "well hi!"
self.class_._mapper = self.hashkey
def instances(self, cursor, db = None):
@@ -250,6 +255,8 @@ class Mapper(object):
insert = []
update = []
for obj in objects:
+
+# print "SAVE_OBJ we are " + hash_key(self) + " obj: " + obj.__class__.__name__ + repr(id(obj))
params = {}
for col in table.columns:
params[col.key] = self._getattrbycolumn(obj, col)
@@ -525,9 +532,9 @@ class PropertyLoader(MapperProperty):
def getlist(obj):
if self.uselist:
- return uowcommit.uow.manager.get_list_history(obj, self.key)
+ return uowcommit.uow.attributes.get_list_history(obj, self.key)
else:
- return uowcommit.uow.manager.get_history(obj, self.key)
+ return uowcommit.uow.attributes.get_history(obj, self.key)
clearkeys = False
@@ -569,6 +576,10 @@ class PropertyLoader(MapperProperty):
elif self.foreignkey.table == self.parent.table:
for child in deplist:
childlist = getlist(child)
+ try:
+ print "got a list and its " + repr(childlist)
+ except:
+ pass
for obj in childlist.added_items():
associationrow = {}
self.primaryjoin.accept_visitor(setter)