Browse Source

Do not modify passed dict (fixes issue #4223) (#4278)

* Do not modify passed dict (fixes issue #4223)

* Use options variable instead of d
Anton 7 years ago
parent
commit
028df35ef8
1 changed files with 3 additions and 2 deletions
  1. 3 2
      celery/canvas.py

+ 3 - 2
celery/canvas.py

@@ -1174,8 +1174,9 @@ class chord(Signature):
 
     @classmethod
     def from_dict(cls, d, app=None):
-        args, d['kwargs'] = cls._unpack_args(**d['kwargs'])
-        return _upgrade(d, cls(*args, app=app, **d))
+        options = d.copy()
+        args, options['kwargs'] = cls._unpack_args(**options['kwargs'])
+        return _upgrade(d, cls(*args, app=app, **options))
 
     @staticmethod
     def _unpack_args(header=None, body=None, **kwargs):