# -*- coding: utf-8 -*-
"""The base Controller API

Provides the BaseController class for subclassing.
"""
from pylons.controllers import WSGIController
{{if template_engine in ('genshi', 'jinja2', 'mako')}}
from pylons.templating import render_{{template_engine}} as render
{{endif}}

from pylons import config, tmpl_context as c
from {{package}} import model
from {{package}}.model.rdfmodel import *

class BaseController(WSGIController):
    
    def __call__(self, environ, start_response):
        """Invoke the Controller"""
        # WSGIController.__call__ dispatches to the Controller method
        # the request is routed to. This routing information is
        # available in environ['pylons.routes_dict']

        # Insert any code to be run per request here.

        # For convenience
        c.graph = rdfSubject.db = config['rdfalchemy.ra_engine']

        try:
            return WSGIController.__call__(self, environ, start_response)
        finally:
            model.Session.remove()
