From 207ef08116ebfff4798a6cfad34ded7912896dea 2011-07-02 23:37:36
From: MinRK <benjaminrk@gmail.com>
Date: 2011-07-02 23:37:36
Subject: [PATCH] preserve dependency attributes in scheduler

A recent update introduced a bug where dependencies being updated in the Scheduler could lose their after/follow/all properties.
---

diff --git a/IPython/parallel/controller/scheduler.py b/IPython/parallel/controller/scheduler.py
index b260d0c..af76c86 100644
--- a/IPython/parallel/controller/scheduler.py
+++ b/IPython/parallel/controller/scheduler.py
@@ -326,9 +326,17 @@ class TaskScheduler(SessionFactory):
             after = Dependency(after)
             if after.all:
                 if after.success:
-                    after = after.difference(self.all_completed)
+                    after = Dependency(after.difference(self.all_completed),
+                                success=after.success,
+                                failure=after.failure,
+                                all=after.all,
+                    )
                 if after.failure:
-                    after = after.difference(self.all_failed)
+                    after = Dependency(after.difference(self.all_failed),
+                                success=after.success,
+                                failure=after.failure,
+                                all=after.all,
+                    )
             if after.check(self.all_completed, self.all_failed):
                 # recast as empty set, if `after` already met,
                 # to prevent unnecessary set comparisons