Browse Source

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

Ask Solem 12 years ago
parent
commit
208747a594
1 changed files with 4 additions and 1 deletions
  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)