Ross Deane 11 år sedan
förälder
incheckning
452d388bab
1 ändrade filer med 4 tillägg och 2 borttagningar
  1. 4 2
      celery/canvas.py

+ 4 - 2
celery/canvas.py

@@ -467,7 +467,8 @@ class chain(Signature):
         tasks = d['kwargs']['tasks']
         if d['args'] and tasks:
             # make sure that tasks are made into signatures (Issue #2076)
-            tasks[0] = signature(tasks[0])
+            if not isinstance(tasks[0], Signature):
+                tasks[0] = signature(tasks[0])
             # partial args passed on to first task in chain (Issue #1057).
             tasks[0]['args'] = tasks[0]._merge(d['args'])[0]
         return chain(*d['kwargs']['tasks'], app=app, **d['options'])
@@ -594,7 +595,8 @@ class group(Signature):
             # partial args passed on to all tasks in the group (Issue #1057).
             for task in tasks:
                 # make sure that tasks are made into signatures (Issue #2076)
-                task = signature(task)
+                if not isinstance(tasks[0], Signature):
+                    task = signature(task)
                 task['args'] = task._merge(d['args'])[0]
         return group(tasks, app=app, **d['options'])