Explorar o código

celery.conf.add_defaults now supports adding non-Mapping objects

Ask Solem %!s(int64=12) %!d(string=hai) anos
pai
achega
208747a594
Modificáronse 1 ficheiros con 4 adicións e 1 borrados
  1. 4 1
      celery/datastructures.py

+ 4 - 1
celery/datastructures.py

@@ -17,9 +17,10 @@ from heapq import heapify, heappush, heappop
 from itertools import chain
 
 try:
-    from collections import MutableMapping
+    from collections import Mapping, MutableMapping
 except ImportError:        # pragma: no cover
     MutableMapping = None  # noqa
+    Mapping = dict         # noqa
 
 from billiard.einfo import ExceptionInfo  # noqa
 from kombu.utils.limits import TokenBucket  # noqa
@@ -317,6 +318,8 @@ class ConfigurationView(AttributeDictMixin):
                              _order=[changes] + defaults)
 
     def add_defaults(self, d):
+        if not isinstance(d, Mapping):
+            d = DictAttribute(d)
         self.defaults.insert(0, d)
         self._order.insert(1, d)