/packages/Django/django/template/loaders/eggs.py

https://github.com/lmorchard/home-snippets-server-lib · Python · 39 lines · 27 code · 6 blank · 6 comment · 5 complexity · 29ca6eb403d7d29dc89159b00ae9fa2a MD5 · raw file

  1. # Wrapper for loading templates from eggs via pkg_resources.resource_string.
  2. try:
  3. from pkg_resources import resource_string
  4. except ImportError:
  5. resource_string = None
  6. from django.template import TemplateDoesNotExist
  7. from django.template.loader import BaseLoader
  8. from django.conf import settings
  9. class Loader(BaseLoader):
  10. is_usable = resource_string is not None
  11. def load_template_source(self, template_name, template_dirs=None):
  12. """
  13. Loads templates from Python eggs via pkg_resource.resource_string.
  14. For every installed app, it tries to get the resource (app, template_name).
  15. """
  16. if resource_string is not None:
  17. pkg_name = 'templates/' + template_name
  18. for app in settings.INSTALLED_APPS:
  19. try:
  20. return (resource_string(app, pkg_name).decode(settings.FILE_CHARSET), 'egg:%s:%s' % (app, pkg_name))
  21. except:
  22. pass
  23. raise TemplateDoesNotExist(template_name)
  24. _loader = Loader()
  25. def load_template_source(template_name, template_dirs=None):
  26. import warnings
  27. warnings.warn(
  28. "'django.template.loaders.eggs.load_template_source' is deprecated; use 'django.template.loaders.eggs.Loader' instead.",
  29. PendingDeprecationWarning
  30. )
  31. return _loader.load_template_source(template_name, template_dirs)
  32. load_template_source.is_usable = resource_string is not None