Browse Source

celery.conf: Configuration initialization is now in a function.

Ask Solem 14 years ago
parent
commit
eb52523a0c
1 changed files with 126 additions and 122 deletions
  1. 126 122
      celery/conf.py

+ 126 - 122
celery/conf.py

@@ -105,149 +105,153 @@ _DEPRECATION_FMT = """
 %s is deprecated in favor of %s and is scheduled for removal in celery v1.4.
 """.strip()
 
-def _get(name, default=None, compat=None):
-    compat = compat or []
-    if default is None:
-        default = _DEFAULTS.get(name)
-    compat = [name] + compat
-    for i, alias in enumerate(compat):
-        try:
-            value = getattr(settings, alias)
-            i > 0 and warnings.warn(DeprecationWarning(_DEPRECATION_FMT % (
-                                                        alias, name)))
-            return value
-        except AttributeError:
-            pass
-    return default
-
-# <--- Task                                        <-   --   --- - ----- -- #
-ALWAYS_EAGER = _get("CELERY_ALWAYS_EAGER")
-EAGER_PROPAGATES_EXCEPTIONS = _get("CELERY_EAGER_PROPAGATES_EXCEPTIONS")
-RESULT_BACKEND = _get("CELERY_RESULT_BACKEND", compat=["CELERY_BACKEND"])
-CELERY_BACKEND = RESULT_BACKEND # FIXME Remove in 1.4
-CACHE_BACKEND = _get("CELERY_CACHE_BACKEND") or _get("CACHE_BACKEND")
-CACHE_BACKEND_OPTIONS = _get("CELERY_CACHE_BACKEND_OPTIONS") or {}
-TASK_SERIALIZER = _get("CELERY_TASK_SERIALIZER")
-TASK_RESULT_EXPIRES = _get("CELERY_TASK_RESULT_EXPIRES")
-IGNORE_RESULT = _get("CELERY_IGNORE_RESULT")
-TRACK_STARTED = _get("CELERY_TRACK_STARTED")
-ACKS_LATE = _get("CELERY_ACKS_LATE")
-# Make sure TASK_RESULT_EXPIRES is a timedelta.
-if isinstance(TASK_RESULT_EXPIRES, int):
-    TASK_RESULT_EXPIRES = timedelta(seconds=TASK_RESULT_EXPIRES)
-
-# <--- SQLAlchemy                                  <-   --   --- - ----- -- #
-RESULT_DBURI = _get("CELERY_RESULT_DBURI")
-RESULT_ENGINE_OPTIONS = _get("CELERY_RESULT_ENGINE_OPTIONS")
-
-
-# <--- Client                                      <-   --   --- - ----- -- #
-
-MAX_CACHED_RESULTS = _get("CELERY_MAX_CACHED_RESULTS")
-
-# <--- Worker                                      <-   --   --- - ----- -- #
-
-SEND_EVENTS = _get("CELERY_SEND_EVENTS")
-DEFAULT_RATE_LIMIT = _get("CELERY_DEFAULT_RATE_LIMIT")
-DISABLE_RATE_LIMITS = _get("CELERY_DISABLE_RATE_LIMITS")
-CELERYD_TASK_TIME_LIMIT = _get("CELERYD_TASK_TIME_LIMIT")
-CELERYD_TASK_SOFT_TIME_LIMIT = _get("CELERYD_TASK_SOFT_TIME_LIMIT")
-CELERYD_MAX_TASKS_PER_CHILD = _get("CELERYD_MAX_TASKS_PER_CHILD")
-STORE_ERRORS_EVEN_IF_IGNORED = _get("CELERY_STORE_ERRORS_EVEN_IF_IGNORED")
-CELERY_SEND_TASK_ERROR_EMAILS = _get("CELERY_SEND_TASK_ERROR_EMAILS", False,
-                                     compat=["SEND_CELERY_TASK_ERROR_EMAILS"])
-CELERY_TASK_ERROR_WHITELIST = _get("CELERY_TASK_ERROR_WHITELIST")
-CELERYD_LOG_FORMAT = _get("CELERYD_LOG_FORMAT",
+def prepare(m, source=settings, defaults=_DEFAULTS):
+
+    def _get(name, default=None, compat=None):
+        compat = compat or []
+        if default is None:
+            default = defaults.get(name)
+        compat = [name] + compat
+        for i, alias in enumerate(compat):
+            try:
+                value = getattr(source, alias)
+                i > 0 and warnings.warn(
+                        DeprecationWarning(_DEPRECATION_FMT % (alias, name)))
+                return value
+            except AttributeError:
+                pass
+        return default
+
+    # <--- Task                                        <-   --   --- - ----- -- #
+    m.ALWAYS_EAGER = _get("CELERY_ALWAYS_EAGER")
+    m.EAGER_PROPAGATES_EXCEPTIONS = _get("CELERY_EAGER_PROPAGATES_EXCEPTIONS")
+    m.RESULT_BACKEND = _get("CELERY_RESULT_BACKEND", compat=["CELERY_BACKEND"])
+    m.CELERY_BACKEND = RESULT_BACKEND # FIXME Remove in 1.4
+    m.CACHE_BACKEND = _get("CELERY_CACHE_BACKEND") or _get("CACHE_BACKEND")
+    m.CACHE_BACKEND_OPTIONS = _get("CELERY_CACHE_BACKEND_OPTIONS") or {}
+    m.TASK_SERIALIZER = _get("CELERY_TASK_SERIALIZER")
+    m.TASK_RESULT_EXPIRES = _get("CELERY_TASK_RESULT_EXPIRES")
+    m.IGNORE_RESULT = _get("CELERY_IGNORE_RESULT")
+    m.TRACK_STARTED = _get("CELERY_TRACK_STARTED")
+    m.ACKS_LATE = _get("CELERY_ACKS_LATE")
+
+    # Make sure TASK_RESULT_EXPIRES is a timedelta.
+    if isinstance(m.TASK_RESULT_EXPIRES, int):
+        m.TASK_RESULT_EXPIRES = timedelta(seconds=m.TASK_RESULT_EXPIRES)
+
+    # <--- SQLAlchemy                                  <-   --   --- - ----- -- #
+    m.RESULT_DBURI = _get("CELERY_RESULT_DBURI")
+    m.RESULT_ENGINE_OPTIONS = _get("CELERY_RESULT_ENGINE_OPTIONS")
+
+    # <--- Client                                      <-   --   --- - ----- -- #
+
+    m.MAX_CACHED_RESULTS = _get("CELERY_MAX_CACHED_RESULTS")
+
+    # <--- Worker                                      <-   --   --- - ----- -- #
+
+    m.SEND_EVENTS = _get("CELERY_SEND_EVENTS")
+    m.DEFAULT_RATE_LIMIT = _get("CELERY_DEFAULT_RATE_LIMIT")
+    m.DISABLE_RATE_LIMITS = _get("CELERY_DISABLE_RATE_LIMITS")
+    m.CELERYD_TASK_TIME_LIMIT = _get("CELERYD_TASK_TIME_LIMIT")
+    m.CELERYD_TASK_SOFT_TIME_LIMIT = _get("CELERYD_TASK_SOFT_TIME_LIMIT")
+    m.CELERYD_MAX_TASKS_PER_CHILD = _get("CELERYD_MAX_TASKS_PER_CHILD")
+    m.STORE_ERRORS_EVEN_IF_IGNORED = _get("CELERY_STORE_ERRORS_EVEN_IF_IGNORED")
+    m.CELERY_SEND_TASK_ERROR_EMAILS = _get("CELERY_SEND_TASK_ERROR_EMAILS",
+                                           False,
+                                    compat=["SEND_CELERY_TASK_ERROR_EMAILS"])
+    m.CELERY_TASK_ERROR_WHITELIST = _get("CELERY_TASK_ERROR_WHITELIST")
+    m.CELERYD_LOG_FORMAT = _get("CELERYD_LOG_FORMAT",
                           compat=["CELERYD_DAEMON_LOG_FORMAT"])
-CELERYD_TASK_LOG_FORMAT = _get("CELERYD_TASK_LOG_FORMAT")
-CELERYD_LOG_FILE = _get("CELERYD_LOG_FILE")
-CELERYD_LOG_COLOR = _get("CELERYD_LOG_COLOR",
+    m.CELERYD_TASK_LOG_FORMAT = _get("CELERYD_TASK_LOG_FORMAT")
+    m.CELERYD_LOG_FILE = _get("CELERYD_LOG_FILE")
+    m.CELERYD_LOG_COLOR = _get("CELERYD_LOG_COLOR",
                        CELERYD_LOG_FILE is None and isatty(sys.stderr))
-CELERYD_LOG_LEVEL = _get("CELERYD_LOG_LEVEL",
+    m.CELERYD_LOG_LEVEL = _get("CELERYD_LOG_LEVEL",
                             compat=["CELERYD_DAEMON_LOG_LEVEL"])
-CELERYD_LOG_LEVEL = LOG_LEVELS[CELERYD_LOG_LEVEL.upper()]
-CELERYD_STATE_DB = _get("CELERYD_STATE_DB")
-CELERYD_CONCURRENCY = _get("CELERYD_CONCURRENCY")
-CELERYD_PREFETCH_MULTIPLIER = _get("CELERYD_PREFETCH_MULTIPLIER")
-CELERYD_POOL_PUTLOCKS = _get("CELERYD_POOL_PUTLOCKS")
-
-CELERYD_POOL = _get("CELERYD_POOL")
-CELERYD_LISTENER = _get("CELERYD_LISTENER")
-CELERYD_MEDIATOR = _get("CELERYD_MEDIATOR")
-CELERYD_ETA_SCHEDULER = _get("CELERYD_ETA_SCHEDULER")
-CELERYD_ETA_SCHEDULER_PRECISION = _get("CELERYD_ETA_SCHEDULER_PRECISION")
-
-# :--- Email settings                               <-   --   --- - ----- -- #
-ADMINS = _get("ADMINS")
-SERVER_EMAIL = _get("SERVER_EMAIL")
-EMAIL_HOST = _get("EMAIL_HOST")
-EMAIL_HOST_USER = _get("EMAIL_HOST_USER")
-EMAIL_HOST_PASSWORD = _get("EMAIL_HOST_PASSWORD")
-EMAIL_PORT = _get("EMAIL_PORT")
-
-
-# :--- Broker connections                           <-   --   --- - ----- -- #
-BROKER_HOST = _get("BROKER_HOST")
-BROKER_PORT = _get("BROKER_PORT")
-BROKER_USER = _get("BROKER_USER")
-BROKER_PASSWORD = _get("BROKER_PASSWORD")
-BROKER_VHOST = _get("BROKER_VHOST")
-BROKER_USE_SSL = _get("BROKER_USE_SSL")
-BROKER_INSIST = _get("BROKER_INSIST")
-BROKER_CONNECTION_TIMEOUT = _get("BROKER_CONNECTION_TIMEOUT",
+    if not isinstance(m.CELERYD_LOG_LEVEL, int):
+        m.CELERYD_LOG_LEVEL = LOG_LEVELS[m.CELERYD_LOG_LEVEL.upper()]
+    m.CELERYD_STATE_DB = _get("CELERYD_STATE_DB")
+    m.CELERYD_CONCURRENCY = _get("CELERYD_CONCURRENCY")
+    m.CELERYD_PREFETCH_MULTIPLIER = _get("CELERYD_PREFETCH_MULTIPLIER")
+    m.CELERYD_POOL_PUTLOCKS = _get("CELERYD_POOL_PUTLOCKS")
+
+    m.CELERYD_POOL = _get("CELERYD_POOL")
+    m.CELERYD_LISTENER = _get("CELERYD_LISTENER")
+    m.CELERYD_MEDIATOR = _get("CELERYD_MEDIATOR")
+    m.CELERYD_ETA_SCHEDULER = _get("CELERYD_ETA_SCHEDULER")
+    m.CELERYD_ETA_SCHEDULER_PRECISION = _get("CELERYD_ETA_SCHEDULER_PRECISION")
+
+    # :--- Email settings                               <-   --   --- - ----- -- #
+    m.ADMINS = _get("ADMINS")
+    m.SERVER_EMAIL = _get("SERVER_EMAIL")
+    m.EMAIL_HOST = _get("EMAIL_HOST")
+    m.EMAIL_HOST_USER = _get("EMAIL_HOST_USER")
+    m.EMAIL_HOST_PASSWORD = _get("EMAIL_HOST_PASSWORD")
+    m.EMAIL_PORT = _get("EMAIL_PORT")
+
+    # :--- Broker connections                           <-   --   --- - ----- -- #
+    m.BROKER_HOST = _get("BROKER_HOST")
+    m.BROKER_PORT = _get("BROKER_PORT")
+    m.BROKER_USER = _get("BROKER_USER")
+    m.BROKER_PASSWORD = _get("BROKER_PASSWORD")
+    m.BROKER_VHOST = _get("BROKER_VHOST")
+    m.BROKER_USE_SSL = _get("BROKER_USE_SSL")
+    m.BROKER_INSIST = _get("BROKER_INSIST")
+    m.BROKER_CONNECTION_TIMEOUT = _get("BROKER_CONNECTION_TIMEOUT",
                                 compat=["CELERY_BROKER_CONNECTION_TIMEOUT"])
-BROKER_CONNECTION_RETRY = _get("BROKER_CONNECTION_RETRY",
+    m.BROKER_CONNECTION_RETRY = _get("BROKER_CONNECTION_RETRY",
                                 compat=["CELERY_BROKER_CONNECTION_RETRY"])
-BROKER_CONNECTION_MAX_RETRIES = _get("BROKER_CONNECTION_MAX_RETRIES",
+    m.BROKER_CONNECTION_MAX_RETRIES = _get("BROKER_CONNECTION_MAX_RETRIES",
                             compat=["CELERY_BROKER_CONNECTION_MAX_RETRIES"])
-BROKER_BACKEND = _get("BROKER_TRANSPORT") or \
-                        _get("BROKER_BACKEND") or \
-                            _get("CARROT_BACKEND")
-
-# <--- Message routing                             <-   --   --- - ----- -- #
-DEFAULT_QUEUE = _get("CELERY_DEFAULT_QUEUE")
-DEFAULT_ROUTING_KEY = _get("CELERY_DEFAULT_ROUTING_KEY")
-DEFAULT_EXCHANGE = _get("CELERY_DEFAULT_EXCHANGE")
-DEFAULT_EXCHANGE_TYPE = _get("CELERY_DEFAULT_EXCHANGE_TYPE")
-DEFAULT_DELIVERY_MODE = _get("CELERY_DEFAULT_DELIVERY_MODE")
-QUEUES = _get("CELERY_QUEUES") or {DEFAULT_QUEUE: {
+    m.BROKER_BACKEND = _get("BROKER_TRANSPORT") or \
+                            _get("BROKER_BACKEND") or \
+                                _get("CARROT_BACKEND")
+
+    # <--- Message routing                             <-   --   --- - ----- -- #
+    m.DEFAULT_QUEUE = _get("CELERY_DEFAULT_QUEUE")
+    m.DEFAULT_ROUTING_KEY = _get("CELERY_DEFAULT_ROUTING_KEY")
+    m.DEFAULT_EXCHANGE = _get("CELERY_DEFAULT_EXCHANGE")
+    m.DEFAULT_EXCHANGE_TYPE = _get("CELERY_DEFAULT_EXCHANGE_TYPE")
+    m.DEFAULT_DELIVERY_MODE = _get("CELERY_DEFAULT_DELIVERY_MODE")
+    m.QUEUES = _get("CELERY_QUEUES") or {DEFAULT_QUEUE: {
                                        "exchange": DEFAULT_EXCHANGE,
                                        "exchange_type": DEFAULT_EXCHANGE_TYPE,
                                        "binding_key": DEFAULT_ROUTING_KEY}}
-CREATE_MISSING_QUEUES = _get("CELERY_CREATE_MISSING_QUEUES")
-ROUTES = routes.prepare(_get("CELERY_ROUTES") or [])
-# :--- Broadcast queue settings                     <-   --   --- - ----- -- #
+    m.CREATE_MISSING_QUEUES = _get("CELERY_CREATE_MISSING_QUEUES")
+    m.ROUTES = routes.prepare(_get("CELERY_ROUTES") or [])
+    # :--- Broadcast queue settings                     <-   --   --- - ----- -- #
 
-BROADCAST_QUEUE = _get("CELERY_BROADCAST_QUEUE")
-BROADCAST_EXCHANGE = _get("CELERY_BROADCAST_EXCHANGE")
-BROADCAST_EXCHANGE_TYPE = _get("CELERY_BROADCAST_EXCHANGE_TYPE")
+    m.BROADCAST_QUEUE = _get("CELERY_BROADCAST_QUEUE")
+    m.BROADCAST_EXCHANGE = _get("CELERY_BROADCAST_EXCHANGE")
+    m.BROADCAST_EXCHANGE_TYPE = _get("CELERY_BROADCAST_EXCHANGE_TYPE")
 
 # :--- Event queue settings                         <-   --   --- - ----- -- #
 
-EVENT_QUEUE = _get("CELERY_EVENT_QUEUE")
-EVENT_EXCHANGE = _get("CELERY_EVENT_EXCHANGE")
-EVENT_EXCHANGE_TYPE = _get("CELERY_EVENT_EXCHANGE_TYPE")
-EVENT_ROUTING_KEY = _get("CELERY_EVENT_ROUTING_KEY")
-EVENT_SERIALIZER = _get("CELERY_EVENT_SERIALIZER")
+    m.EVENT_QUEUE = _get("CELERY_EVENT_QUEUE")
+    m.EVENT_EXCHANGE = _get("CELERY_EVENT_EXCHANGE")
+    m.EVENT_EXCHANGE_TYPE = _get("CELERY_EVENT_EXCHANGE_TYPE")
+    m.EVENT_ROUTING_KEY = _get("CELERY_EVENT_ROUTING_KEY")
+    m.EVENT_SERIALIZER = _get("CELERY_EVENT_SERIALIZER")
 
 # :--- AMQP Backend settings                        <-   --   --- - ----- -- #
 
-RESULT_EXCHANGE = _get("CELERY_RESULT_EXCHANGE")
-RESULT_EXCHANGE_TYPE = _get("CELERY_RESULT_EXCHANGE_TYPE")
-RESULT_SERIALIZER = _get("CELERY_RESULT_SERIALIZER")
-RESULT_PERSISTENT = _get("CELERY_RESULT_PERSISTENT")
+    m.RESULT_EXCHANGE = _get("CELERY_RESULT_EXCHANGE")
+    m.RESULT_EXCHANGE_TYPE = _get("CELERY_RESULT_EXCHANGE_TYPE")
+    m.RESULT_SERIALIZER = _get("CELERY_RESULT_SERIALIZER")
+    m.RESULT_PERSISTENT = _get("CELERY_RESULT_PERSISTENT")
 
 # :--- Celery Beat                                  <-   --   --- - ----- -- #
-CELERYBEAT_LOG_LEVEL = _get("CELERYBEAT_LOG_LEVEL")
-CELERYBEAT_LOG_FILE = _get("CELERYBEAT_LOG_FILE")
-CELERYBEAT_SCHEDULE = _get("CELERYBEAT_SCHEDULE")
-CELERYBEAT_SCHEDULE_FILENAME = _get("CELERYBEAT_SCHEDULE_FILENAME")
-CELERYBEAT_MAX_LOOP_INTERVAL = _get("CELERYBEAT_MAX_LOOP_INTERVAL")
+    m.CELERYBEAT_LOG_LEVEL = _get("CELERYBEAT_LOG_LEVEL")
+    m.CELERYBEAT_LOG_FILE = _get("CELERYBEAT_LOG_FILE")
+    m.CELERYBEAT_SCHEDULE = _get("CELERYBEAT_SCHEDULE")
+    m.CELERYBEAT_SCHEDULE_FILENAME = _get("CELERYBEAT_SCHEDULE_FILENAME")
+    m.CELERYBEAT_MAX_LOOP_INTERVAL = _get("CELERYBEAT_MAX_LOOP_INTERVAL")
 
 # :--- Celery Monitor                               <-   --   --- - ----- -- #
-CELERYMON_LOG_LEVEL = _get("CELERYMON_LOG_LEVEL")
-CELERYMON_LOG_FILE = _get("CELERYMON_LOG_FILE")
+    m.CELERYMON_LOG_LEVEL = _get("CELERYMON_LOG_LEVEL")
+    m.CELERYMON_LOG_FILE = _get("CELERYMON_LOG_FILE")
 
+prepare(sys.modules[__name__])
 
 def _init_queues(queues):
     """Convert configuration mapping to a table of queues digestible