view piecrust/sources/interfaces.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 86b684cc0551
children 8adc27285d93
line wrap: on
line source


class IPreparingSource(object):
    """ Defines the interface for a source whose pages can be created by the
        `chef prepare` command.
    """
    def setupPrepareParser(self, parser, app):
        raise NotImplementedError()

    def createContent(self, args):
        raise NotImplementedError()


class InteractiveField(object):
    """ A field to display in the administration web UI.
    """
    TYPE_STRING = 0
    TYPE_INT = 1

    def __init__(self, name, field_type, default_value):
        self.name = name
        self.field_type = field_type
        self.default_value = default_value


class IInteractiveSource(object):
    """ A content source that a user can interact with in the administration
        web UI.
    """
    def getInteractiveFields(self):
        raise NotImplementedError()

    def findContentFromPath(self, path):
        raise NotImplementedError()