buildframework/helium/external/python/lib/2.5/Sphinx-0.5.1-py2.5.egg/sphinx/_jinja.py
changeset 179 d8ac696cc51f
parent 1 be27ed110b50
child 180 e02a83d4c571
child 592 3215c239276a
--- a/buildframework/helium/external/python/lib/2.5/Sphinx-0.5.1-py2.5.egg/sphinx/_jinja.py	Wed Oct 28 14:39:48 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-    sphinx._jinja
-    ~~~~~~~~~~~~~
-
-    Jinja glue.
-
-    :copyright: 2007-2008 by Georg Brandl, Horst Gutmann.
-    :license: BSD.
-"""
-
-import codecs
-from os import path
-
-from sphinx.util import mtimes_of_files
-from sphinx.application import TemplateBridge
-
-from jinja import Environment
-from jinja.loaders import BaseLoader
-from jinja.exceptions import TemplateNotFound
-
-
-def babel_extract(fileobj, keywords, comment_tags, options):
-    """
-    Simple extractor to get some basic Babel support.
-    """
-    env = Environment()
-    for lineno, sg, pl in env.get_translations_for_string(fileobj.read()):
-        yield lineno, None, (sg, pl), ''
-
-
-class SphinxFileSystemLoader(BaseLoader):
-    """
-    A loader that loads templates either relative to one of a list of given
-    paths, or from an absolute path.
-    """
-
-    def __init__(self, basepath, extpaths):
-        self.basepath = path.abspath(basepath)
-        self.extpaths = map(path.abspath, extpaths)
-        self.searchpaths = self.extpaths + [self.basepath]
-
-    def get_source(self, environment, name, parent):
-        name = name.replace('/', path.sep)
-        if name.startswith('!'):
-            name = name[1:]
-            if not path.exists(path.join(self.basepath, name)):
-                raise TemplateNotFound(name)
-            filename = path.join(self.basepath, name)
-        elif path.isabs(name):
-            if not path.exists(name):
-                raise TemplateNotFound(name)
-            filename = name
-        else:
-            for searchpath in self.searchpaths:
-                if path.exists(path.join(searchpath, name)):
-                    filename = path.join(searchpath, name)
-                    break
-            else:
-                raise TemplateNotFound(name)
-        f = codecs.open(filename, 'r', environment.template_charset)
-        try:
-            return f.read()
-        finally:
-            f.close()
-
-
-class TranslatorEnvironment(Environment):
-    class _Translator(object):
-        def __init__(self, translator):
-            self.trans = translator
-
-        def gettext(self, string):
-            return self.trans.ugettext(string)
-
-        def ngettext(self, singular, plural, n):
-            return self.trans.ungettext(singular, plural, n)
-
-    def __init__(self, *args, **kwargs):
-        self.translator = kwargs['translator']
-        del kwargs['translator']
-        super(TranslatorEnvironment, self).__init__(*args, **kwargs)
-
-    def get_translator(self, context):
-        return TranslatorEnvironment._Translator(self.translator)
-
-
-class BuiltinTemplates(TemplateBridge):
-    def init(self, builder):
-        self.templates = {}
-        base_templates_path = path.join(path.dirname(__file__), 'templates')
-        ext_templates_path = [path.join(builder.confdir, dir)
-                              for dir in builder.config.templates_path]
-        self.templates_path = [base_templates_path] + ext_templates_path
-        loader = SphinxFileSystemLoader(base_templates_path, ext_templates_path)
-        if builder.translator is not None:
-            self.jinja_env = TranslatorEnvironment(loader=loader,
-                    friendly_traceback=False, translator=builder.translator)
-        else:
-            self.jinja_env = Environment(loader=loader,
-                    # disable traceback, more likely that something
-                    # in the application is broken than in the templates
-                    friendly_traceback=False)
-
-    def newest_template_mtime(self):
-        return max(mtimes_of_files(self.templates_path, '.html'))
-
-    def render(self, template, context):
-        if template in self.templates:
-            return self.templates[template].render(context)
-        templateobj = self.templates[template] = \
-                      self.jinja_env.get_template(template)
-        return templateobj.render(context)