view piecrust/templating/base.py @ 979:45ad976712ec

tests: Big push to get the tests to pass again. - Lots of fixes everywhere in the code. - Try to handle debug logging in the multiprocessing worker pool when running in pytest. Not perfect, but usable for now. - Replace all `.md` test files with `.html` since now a auto-format extension always sets the format. - Replace `out` with `outfiles` in most places since now blog archives are added to the bake output and I don't want to add expected outputs for blog archives everywhere.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 29 Oct 2017 22:51:57 -0700
parents 1bb704434ee2
children c4cf3cfe2726
line wrap: on
line source



class TemplateNotFoundError(Exception):
    pass


class TemplatingError(Exception):
    def __init__(self, message, filename=None, lineno=-1):
        super(TemplatingError, self).__init__()
        self.message = message
        self.filename = filename
        self.lineno = lineno

    def __str__(self):
        msg = ''
        if self.filename:
            msg += self.filename
        if self.lineno >= 0:
            msg += ', line %d' % self.lineno
        msg += ': ' + self.message
        return msg


class TemplateEngine(object):
    EXTENSIONS = []

    def initialize(self, app):
        self.app = app

    def renderSegment(self, path, segment, data):
        raise NotImplementedError()

    def renderFile(self, paths, data):
        raise NotImplementedError()