Removed "built-in" Genshi backend as it is replaced by the github version now.
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Tue, 28 Jul 2015 19:32:38 +0000 (21:32 +0200)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Tue, 28 Jul 2015 19:32:38 +0000 (21:32 +0200)
django_template_backend_genshi/__init__.py [deleted file]

diff --git a/django_template_backend_genshi/__init__.py b/django_template_backend_genshi/__init__.py
deleted file mode 100644 (file)
index 55f477c..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-# Copyright (c) 2015 Gregor Herrmann, Philipp Spitzer.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. The names of the authors may be used
-# to endorse or promote products derived from this software without
-# specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-"""Genshi Engine for Django 1.8
-
-The following context variable are already pre-configured and usable:
-    'static'     # staticfiles_storage.url
-    'url'        # reverse
-    'request'    # request
-    'csrf_input' # csrf_input_lazy(request)
-    'csrf_token' # csrf_token_lazy(request)
-
-
-Usage/configuration:
-    In your settings.py, change the TEMPLATE section to the following:
-
-    TEMPLATES = [
-        {
-            'BACKEND': 'django_template_backend_genshi.GenshiEngine',
-            'DIRS': [],
-            'APP_DIRS': True,
-            'OPTIONS': {
-                'auto_reload': True,
-                'app_dirname': 'templates',
-                'serialization': 'xhtml',
-            },
-        },
-    ]
-
-
-Questions with answers:
-    How do I add additional context variables or functions that are available to every template?
-
-        Define a receiver function of the signal template_render and add context variables:
-
-        from django.dispatch import receiver
-        from django_template_backend_genshi import template_render
-
-        @receiver(template_render)
-        def add_render_globals(sender, **kwargs):
-            genshi_context = kwargs['genshi_context']
-            request = genshi_context['request']
-            genshi_context['mynewvar'] = len(request)
-"""
-
-from django.template.backends.utils import csrf_input_lazy, csrf_token_lazy
-import django.template.backends.base
-import django.dispatch
-from django.core.urlresolvers import reverse
-from django.contrib.staticfiles.storage import staticfiles_storage
-import genshi.template
-import genshi.template.loader
-import genshi.template.base
-
-
-class GenshiEngine(django.template.backends.base.BaseEngine):
-    app_dirname = 'genshi'
-
-    def __init__(self, params):
-        params = params.copy()
-        options = params.pop('OPTIONS').copy()
-        self.app_dirname = options.get('app_dirname', self.app_dirname)
-        super(GenshiEngine, self).__init__(params)
-        loader = genshi.template.TemplateLoader(self.template_dirs, auto_reload=options['auto_reload'])
-        self.loader = loader
-        self.serialization = options.get('serialization', 'xhtml')
-
-    def from_string(self, template_code):
-        try:
-            template = genshi.template.MarkupTemplate(template_code)
-            return GenshiTemplateWrapper(template, self.serialization)
-        except genshi.template.base.TemplateSyntaxError as exc:
-            raise django.template.TemplateSyntaxError(exc.args)
-
-    def get_template(self, template_name):
-        try:
-            template = self.loader.load(template_name)
-            return GenshiTemplateWrapper(template, self.serialization)
-        except genshi.template.loader.TemplateNotFound as exc:
-            raise django.template.TemplateDoesNotExist(exc.args)
-        except genshi.template.base.TemplateSyntaxError as exc:
-            raise django.template.TemplateSyntaxError(exc.args)
-
-
-# signal emitted just before the template is rendered by GenshiTemplateWrapper to have an opportunity to add
-# context variables. genshi_context is the Genshi context (genshi.template.base.Context()) already filles with
-# 'static' and 'url' and - if it's a request - 'request', 'csrf_input' and 'csrf_token'.
-template_render = django.dispatch.Signal(providing_args=["genshi_context"])
-
-
-class GenshiTemplateWrapper(object):
-    def __init__(self, template, serialization):
-        self.template = template
-        self.serialization = serialization
-
-    def render(self, context=None, request=None):
-        genshi_context = genshi.template.base.Context()
-        genshi_context['static'] = staticfiles_storage.url
-        genshi_context['url'] = reverse
-        if request is not None:
-            genshi_context['request'] = request
-            genshi_context['csrf_input'] = csrf_input_lazy(request)
-            genshi_context['csrf_token'] = csrf_token_lazy(request)
-        if context is not None:
-            genshi_context.push(context)
-        template_render.send(self, genshi_context=genshi_context)
-        stream = self.template.generate(genshi_context)
-        # this might raise a genshi.template.eval.UndefinedError (derived from genshi.template.base.TemplateRuntimeError)
-        return stream.render(self.serialization)