In my application I had a problem with self referencial mappers. Currently I can not reproduce it in a simple example but the attached diff solved the problem.
I got an error because task.dependencies was changed inside the while loop. I also tested the change against the tests in sqlalchemy.test. Apart from the existing errors when running the test there was no new error introduced. Jürgen -- --------------------------------------------------- Jürgen Kartnaller mailto:juergen_at_kartnaller.at http://www.kartnaller.at http://www.mcb-bregenz.at irc : jukart ---------------------------------------------------
Index: unitofwork.py =================================================================== --- unitofwork.py (Revision 1518) +++ unitofwork.py (Arbeitskopie) @@ -735,7 +735,8 @@ # organize all original UOWDependencyProcessors by their target task deps_by_targettask = {} for task in cycles: - for dep in task.dependencies: + deps = list(task.dependencies) + for dep in deps: if dep.targettask not in cycles or trans.get_task_by_mapper(dep.processor.mapper) not in cycles: extradeplist.append(dep) l = deps_by_targettask.setdefault(dep.targettask, [])