Browse Source

Compat module celery.task.schedules now automatically generated

Ask Solem 13 years ago
parent
commit
34e33fbec4
1 changed files with 9 additions and 3 deletions
  1. 9 3
      celery/__compat__.py

+ 9 - 3
celery/__compat__.py

@@ -3,6 +3,7 @@ from __future__ import absolute_import
 import operator
 import sys
 
+from importlib import import_module
 from types import ModuleType
 
 from .local import Proxy
@@ -77,7 +78,8 @@ COMPAT_MODULES = {
             "revoke": "control.revoke",
             "discard_all": "control.purge",
             "inspect": "control.inspect",
-        }
+        },
+        "schedules": "celery.schedules",
     }
 }
 
@@ -168,9 +170,13 @@ def get_compat_module(pkg, name):
             return Proxy(getappattr, (attr, ))
         return attr
 
-    attrs = dict(COMPAT_MODULES[pkg.__name__][name])
+    attrs = COMPAT_MODULES[pkg.__name__][name]
+    if isinstance(attrs, basestring):
+        fqdn = '.'.join([pkg.__name__, name])
+        module = sys.modules[fqdn] = import_module(attrs)
+        return module
     attrs["__all__"] = attrs.keys()
-    return create_module(name, attrs, pkg=pkg, prepare_attr=prepare)
+    return create_module(name, dict(attrs), pkg=pkg, prepare_attr=prepare)
 
 
 def get_origins(defs):