/bangkokhotel/lib/python2.5/site-packages/django/template/loaders/eggs.py

https://bitbucket.org/luisrodriguez/bangkokhotel · Python · 30 lines · 19 code · 5 blank · 6 comment · 5 complexity · 321bad739b390773621ba5a89b2618cf 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.base 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()