__init__.py 774 B

123456789101112131415161718192021222324252627282930313233
  1. import os
  2. from celery.utils import get_cls_by_name
  3. LOADER_ALIASES = {"default": "celery.loaders.default.Loader",
  4. "django": "djcelery.loaders.DjangoLoader"}
  5. _loader = None
  6. _settings = None
  7. def get_loader_cls(loader):
  8. """Get loader class by name/alias"""
  9. return get_cls_by_name(loader, LOADER_ALIASES)
  10. def setup_loader():
  11. return get_loader_cls(os.environ.setdefault("CELERY_LOADER", "default"))()
  12. def current_loader():
  13. """Detect and return the current loader."""
  14. global _loader
  15. if _loader is None:
  16. _loader = setup_loader()
  17. return _loader
  18. def load_settings():
  19. """Load the global settings object."""
  20. global _settings
  21. if _settings is None:
  22. _settings = current_loader().conf
  23. return _settings