Mercurial > piecrust2
view piecrust/dataproviders/base.py @ 877:d6d35b2efd04
bake: Rename "pass" to "step" and make the page pipeline use different steps.
That pipeline is now first loading all pages, and then rendering full pages
unless they trigger a sub-render.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 15 Jun 2017 22:16:23 -0700 |
parents | d231a10d18f9 |
children |
line wrap: on
line source
from piecrust.configuration import ConfigurationError class DataProvider: """ The base class for a data provider. """ PROVIDER_NAME = None debug_render_dynamic = [] debug_render_invoke_dynamic = [] def __init__(self, source, page): self._sources = [source] self._page = page self._app = source.app def _addSource(self, source): self._sources.append(source) def build_data_provider(provider_type, source, page): if not provider_type: raise Exception("No data provider type specified.") for p in page.app.plugin_loader.getDataProviders(): if p.PROVIDER_NAME == provider_type: pclass = p break else: raise ConfigurationError("Unknown data provider type: %s" % provider_type) return pclass(source, page)