/bangkokhotel/lib/python2.5/site-packages/django/template/loaders/eggs.py
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
3try:
4 from pkg_resources import resource_string
5except ImportError:
6 resource_string = None
7
8from django.template.base import TemplateDoesNotExist
9from django.template.loader import BaseLoader
10from django.conf import settings
11
12class Loader(BaseLoader):
13 is_usable = resource_string is not None
14
15 def load_template_source(self, template_name, template_dirs=None):
16 """
17 Loads templates from Python eggs via pkg_resource.resource_string.
18
19 For every installed app, it tries to get the resource (app, template_name).
20 """
21 if resource_string is not None:
22 pkg_name = 'templates/' + template_name
23 for app in settings.INSTALLED_APPS:
24 try:
25 return (resource_string(app, pkg_name).decode(settings.FILE_CHARSET), 'egg:%s:%s' % (app, pkg_name))
26 except:
27 pass
28 raise TemplateDoesNotExist(template_name)
29
30_loader = Loader()