PageRenderTime 24ms CodeModel.GetById 19ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/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
 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()