Explorar o código

Not allowed to register regular functions in the registry anymore

Ask Solem %!s(int64=15) %!d(string=hai) anos
pai
achega
de58e47824
Modificáronse 1 ficheiros con 4 adicións e 7 borrados
  1. 4 7
      celery/registry.py

+ 4 - 7
celery/registry.py

@@ -3,6 +3,7 @@ from celery import discovery
 from celery.utils import get_full_cls_name
 from celery.exceptions import NotRegistered, AlreadyRegistered
 from UserDict import UserDict
+import inspect
 
 
 class TaskRegistry(UserDict):
@@ -31,9 +32,9 @@ class TaskRegistry(UserDict):
         :raises AlreadyRegistered: if the task is already registered.
 
         """
-        is_class = hasattr(task, "run")
-        if is_class:
-            task = task() # instantiate Task class
+
+        task = task() if inspect.isclass(task) else task
+
         if not name:
             name = getattr(task, "name")
 
@@ -41,10 +42,6 @@ class TaskRegistry(UserDict):
             raise self.AlreadyRegistered(
                     "Task with name %s is already registered." % name)
 
-        if not is_class:
-            task.name = name
-            task.type = "regular"
-
         self.data[name] = task
 
     def unregister(self, name):