Browse Source

celery.task module call works again

Ask Solem 13 years ago
parent
commit
e41b03c586
2 changed files with 8 additions and 5 deletions
  1. 6 5
      celery/__compat__.py
  2. 2 0
      celery/beat.py

+ 6 - 5
celery/__compat__.py

@@ -122,19 +122,20 @@ class MagicModule(ModuleType):
         return list(set(self.__all__) | DEFAULT_ATTRS)
 
 
-def create_module(name, attrs, cls_attrs=None, pkg=None,
-        bases=(MagicModule, ), prepare_attr=None):
+def create_module(name, attrs, cls_attrs=None, pkg=None, base=MagicModule,
+        prepare_attr=None):
     fqdn = '.'.join([pkg.__name__, name]) if pkg else name
     cls_attrs = {} if cls_attrs is None else cls_attrs
 
     attrs = dict((attr_name, prepare_attr(attr) if prepare_attr else attr)
                     for attr_name, attr in attrs.iteritems())
-    module = sys.modules[fqdn] = type(name, bases, cls_attrs)(fqdn)
+    module = sys.modules[fqdn] = type(name, (base, ), cls_attrs)(fqdn)
     module.__dict__.update(attrs)
     return module
 
 
-def recreate_module(name, compat_modules=(), by_module={}, direct={}, **attrs):
+def recreate_module(name, compat_modules=(), by_module={}, direct={},
+        base=MagicModule, **attrs):
     old_module = sys.modules[name]
     origins = get_origins(by_module)
     compat_modules = COMPAT_MODULES.get(name, ())
@@ -144,7 +145,7 @@ def recreate_module(name, compat_modules=(), by_module={}, direct={}, **attrs):
                   _object_origins=origins,
                   __all__=tuple(set(reduce(operator.add, map(tuple, [
                                 compat_modules, origins, direct, attrs])))))
-    new_module = create_module(name, attrs, cls_attrs=cattrs)
+    new_module = create_module(name, attrs, cls_attrs=cattrs, base=base)
     new_module.__dict__.update(dict((mod, get_compat_module(new_module, mod))
                                      for mod in compat_modules))
     return old_module, new_module

+ 2 - 0
celery/beat.py

@@ -148,6 +148,8 @@ class Scheduler(object):
 
     _last_sync = None
 
+    logger = logger  # compat
+
     def __init__(self, schedule=None, max_interval=None,
             app=None, Publisher=None, lazy=False, **kwargs):
         app = self.app = app_or_default(app)