Browse Source

Cosmetics

Ask Solem 14 years ago
parent
commit
0504823063
2 changed files with 22 additions and 46 deletions
  1. 8 10
      celery/app/__init__.py
  2. 14 36
      celery/app/base.py

+ 8 - 10
celery/app/__init__.py

@@ -15,13 +15,13 @@ from inspect import getargspec
 
 from celery import registry
 from celery.app import base
+from celery.utils import instantiate
 from celery.utils.functional import wraps
 
-_tls = threading.local()
-
 # Apps with the :attr:`~celery.app.base.BaseApp.set_as_current` attribute
 # sets this, so it will always contain the last instantiated app,
 # and is the default app returned by :func:`app_or_default`.
+_tls = threading.local()
 _tls.current_app = None
 
 
@@ -51,19 +51,17 @@ class App(base.BaseApp):
 
     def Worker(self, **kwargs):
         """Create new :class:`~celery.apps.worker.Worker` instance."""
-        from celery.apps.worker import Worker
-        return Worker(app=self, **kwargs)
+        return instantiate("celery.apps.worker.Worker", app=self, **kwargs)
 
     def Beat(self, **kwargs):
         """Create new :class:`~celery.apps.beat.Beat` instance."""
-        from celery.apps.beat import Beat
-        return Beat(app=self, **kwargs)
+        return instantiate("celery.apps.beat.Beat", app=self, **kwargs)
 
     def TaskSet(self, *args, **kwargs):
         """Create new :class:`~celery.task.sets.TaskSet`."""
         from celery.task.sets import TaskSet
         kwargs["app"] = self
-        return TaskSet(*args, **kwargs)
+        return TaskSet(*args, app=self, **kwargs)
 
     def worker_main(self, argv=None):
         """Run :program:`celeryd` using `argv`.  Uses :data:`sys.argv`
@@ -131,7 +129,7 @@ class App(base.BaseApp):
         return inner_create_task_cls(**options)
 
     def __repr__(self):
-        return "<Celery: 0x%x>" % (id(self), )
+        return "<Celery: %s:0x%x>" % (self.main or "__main__", id(self), )
 
     def __reduce__(self):
         # Reduce only pickles the configuration changes,
@@ -149,7 +147,7 @@ class App(base.BaseApp):
 
 
 def _unpickle_app(cls, main, changes, loader, backend, amqp,
-                  events, log, control):
+        events, log, control):
     app = cls(main, loader=loader, backend=backend, amqp=amqp,
                     events=events, log=log, control=control,
                     set_as_current=False)
@@ -161,7 +159,7 @@ def _unpickle_app(cls, main, changes, loader, backend, amqp,
 default_loader = os.environ.get("CELERY_LOADER") or "default"
 
 #: Global fallback app instance.
-default_app = App(loader=default_loader, set_as_current=False)
+default_app = App("default", loader=default_loader, set_as_current=False)
 
 
 def current_app():

+ 14 - 36
celery/app/base.py

@@ -80,9 +80,7 @@ class BaseApp(object):
         The config
 
         """
-        config = self.loader.cmdline_config_parser(argv, namespace)
-        for key, value in config.items():
-            self.conf[key] = value
+        self.conf.update(self.loader.cmdline_config_parser(argv, namespace))
 
     def send_task(self, name, args=None, kwargs=None, countdown=None,
             eta=None, task_id=None, publisher=None, connection=None,
@@ -193,7 +191,7 @@ class BaseApp(object):
                     close_connection()
         return _inner
 
-    def pre_config_merge(self, c):
+    def prepare_config(self, c):
         """Prepare configuration before it is merged with the defaults."""
         if not c.get("CELERY_RESULT_BACKEND"):
             rbackend = c.get("CELERY_BACKEND")
@@ -206,12 +204,10 @@ class BaseApp(object):
         return c
 
     def mail_admins(self, subject, body, fail_silently=False):
-        """Send an e-mail to the admins in conf.ADMINS."""
-        if not self.conf.ADMINS:
-            return
-        to = [admin_email for _, admin_email in self.conf.ADMINS]
-        return self.loader.mail_admins(subject, body, fail_silently,
-                                       to=to,
+        """Send an e-mail to the admins in the :setting:`ADMINS` setting."""
+        if self.conf.ADMINS:
+            to = [admin_email for _, admin_email in self.conf.ADMINS]
+            return self.loader.mail_admins(subject, body, fail_silently, to=to,
                                        sender=self.conf.SERVER_EMAIL,
                                        host=self.conf.EMAIL_HOST,
                                        port=self.conf.EMAIL_PORT,
@@ -244,24 +240,17 @@ class BaseApp(object):
 
     def _get_config(self):
         return ConfigurationView({},
-                [self.pre_config_merge(self.loader.conf), DEFAULTS])
+                [self.prepare_config(self.loader.conf), DEFAULTS])
 
     @cached_property
     def amqp(self):
-        """Sending/receiving messages.
-
-        See :class:`~celery.app.amqp.AMQP`.
-
-        """
+        """Sending/receiving messages.  See :class:`~celery.app.amqp.AMQP`."""
         return instantiate(self.amqp_cls, app=self)
 
     @cached_property
     def backend(self):
-        """Storing/retreiving task state.
-
-        See :class:`~celery.backend.base.BaseBackend`.
-
-        """
+        """Storing/retreiving task state.  See
+        :class:`~celery.backend.base.BaseBackend`."""
         return self._get_backend()
 
     @cached_property
@@ -271,20 +260,13 @@ class BaseApp(object):
 
     @cached_property
     def control(self):
-        """Controlling worker nodes.
-
-        See :class:`~celery.task.control.Control`.
-
-        """
+        """Controlling worker nodes.  See
+        :class:`~celery.task.control.Control`."""
         return instantiate(self.control_cls, app=self)
 
     @cached_property
     def events(self):
-        """Sending/receiving events.
-
-        See :class:`~celery.events.Events`.
-
-        """
+        """Sending/receiving events.  See :class:`~celery.events.Events`. """
         return instantiate(self.events_cls, app=self)
 
     @cached_property
@@ -295,9 +277,5 @@ class BaseApp(object):
 
     @cached_property
     def log(self):
-        """Logging utilities.
-
-        See :class:`~celery.log.Logging`.
-
-        """
+        """Logging utilities.  See :class:`~celery.log.Logging`."""
         return instantiate(self.log_cls, app=self)