Browse Source

app.conf.find now returns namedtuple

Ask Solem 11 years ago
parent
commit
be34d6e4c3
2 changed files with 11 additions and 8 deletions
  1. 9 6
      celery/app/defaults.py
  2. 2 2
      celery/app/utils.py

+ 9 - 6
celery/app/defaults.py

@@ -10,7 +10,7 @@ from __future__ import absolute_import
 
 import sys
 
-from collections import deque
+from collections import deque, namedtuple
 from datetime import timedelta
 
 from celery.five import items
@@ -31,7 +31,6 @@ elif is_pypy:
     else:
         DEFAULT_POOL = 'processes'
 
-
 DEFAULT_ACCEPT_CONTENT = ['json', 'pickle', 'msgpack', 'yaml']
 DEFAULT_PROCESS_LOG_FMT = """
     [%(asctime)s: %(levelname)s/%(processName)s] %(message)s
@@ -44,6 +43,8 @@ _BROKER_OLD = {'deprecate_by': '2.5', 'remove_by': '4.0', 'alt': 'BROKER_URL'}
 _REDIS_OLD = {'deprecate_by': '2.5', 'remove_by': '4.0',
               'alt': 'URL form of CELERY_RESULT_BACKEND'}
 
+searchresult = namedtuple('searchresult', ('namespace', 'key', 'type'))
+
 
 class Option(object):
     alt = None
@@ -249,16 +250,18 @@ def find(name, namespace='celery'):
     # - Try specified namespace first.
     namespace = namespace.upper()
     try:
-        return namespace, name.upper(), NAMESPACES[namespace][name.upper()]
+        return searchresult(
+            namespace, name.upper(), NAMESPACES[namespace][name.upper()],
+        )
     except KeyError:
         # - Try all the other namespaces.
         for ns, keys in items(NAMESPACES):
             if ns.upper() == name.upper():
-                return None, ns, keys
+                return searchresult(None, ns, keys)
             elif isinstance(keys, dict):
                 try:
-                    return ns, name.upper(), keys[name.upper()]
+                    return searchresult(ns, name.upper(), keys[name.upper()])
                 except KeyError:
                     pass
     # - See if name is a qualname last.
-    return None, name.upper(), DEFAULTS[name.upper()]
+    return searchresult(None, name.upper(), DEFAULTS[name.upper()])

+ 2 - 2
celery/app/utils.py

@@ -79,9 +79,9 @@ class Settings(ConfigurationView):
     def find_option(self, name, namespace='celery'):
         """Search for option by name.
 
-        Will return ``(namespace, option_name, Option)`` tuple, e.g.::
+        Will return ``(namespace, key, type)`` tuple, e.g.::
 
-            >>> celery.conf.find_option('disable_rate_limits')
+            >>> app.conf.find_option('disable_rate_limits')
             ('CELERY', 'DISABLE_RATE_LIMITS',
              <Option: type->bool default->False>))