summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/unitofwork.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-04-08 18:52:04 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2010-04-08 18:52:04 -0400
commit72fb740c22a1c59abd2ca62246d2cc3d5071429e (patch)
tree781a326c4c31ab5b5551ebbaa0fc301f22195365 /lib/sqlalchemy/orm/unitofwork.py
parent1f960f44c0c42c197caeb47ce075bac06c732def (diff)
downloadsqlalchemy-72fb740c22a1c59abd2ca62246d2cc3d5071429e.tar.gz
start adding tests to ensure the size of the uow
Diffstat (limited to 'lib/sqlalchemy/orm/unitofwork.py')
-rw-r--r--lib/sqlalchemy/orm/unitofwork.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/sqlalchemy/orm/unitofwork.py b/lib/sqlalchemy/orm/unitofwork.py
index 3d5bf8b94..bdfaa008b 100644
--- a/lib/sqlalchemy/orm/unitofwork.py
+++ b/lib/sqlalchemy/orm/unitofwork.py
@@ -158,9 +158,8 @@ class UOWTransaction(object):
for state in self.mappers[mapper]:
if self.states[state] == checktup:
yield state
-
- def execute(self):
-
+
+ def _generate_actions(self):
# execute presort_actions, until all states
# have been processed. a presort_action might
# add new states to the uow.
@@ -171,12 +170,12 @@ class UOWTransaction(object):
ret = True
if not ret:
break
-
+
# see if the graph of mapper dependencies has cycles.
self.cycles = cycles = topological.find_cycles(
self.dependencies,
self.postsort_actions.values())
-
+
if cycles:
# if yes, break the per-mapper actions into
# per-state actions
@@ -202,20 +201,23 @@ class UOWTransaction(object):
for dep in convert[edge[1]]:
self.dependencies.add((edge[0], dep))
- postsort_actions = set(
+ return set(
[a for a in self.postsort_actions.values()
if not a.disabled
]
).difference(cycles)
+
+ def execute(self):
+ postsort_actions = self._generate_actions()
- sort = topological.sort(self.dependencies, postsort_actions)
+ #sort = topological.sort(self.dependencies, postsort_actions)
#print "--------------"
#print self.dependencies
- print postsort_actions
- print "COUNT OF POSTSORT ACTIONS", len(postsort_actions)
+ #print postsort_actions
+ #print "COUNT OF POSTSORT ACTIONS", len(postsort_actions)
# execute
- if cycles:
+ if self.cycles:
for set_ in topological.sort_as_subsets(
self.dependencies,
postsort_actions):