Mercurial > piecrust2
view piecrust/dataproviders/base.py @ 853:f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
The asset pipeline is still the only function pipeline at this point.
* No more `QualifiedPage`, and several other pieces of code deleted.
* Data providers are simpler and more focused. For instance, the page iterator
doesn't try to support other types of items.
* Route parameters are proper known source metadata to remove the confusion
between the two.
* Make the baker and pipeline more correctly manage records and record
histories.
* Add support for record collapsing and deleting stale outputs in the asset
pipeline.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 21 May 2017 00:06:59 -0700 |
parents | |
children | 08e02c2a2a1a |
line wrap: on
line source
from piecrust.configuration import ConfigurationError class UnsupportedWrappedDataProviderError(Exception): pass class DataProvider: """ The base class for a data provider. """ PROVIDER_NAME = None debug_render_dynamic = [] debug_render_invoke_dynamic = [] def __init__(self, source): self._source = source def _wrapDataProvider(self, provider): raise UnsupportedWrappedDataProviderError() def get_data_provider_class(app, provider_type): if not provider_type: raise Exception("No data provider type specified.") for prov in app.plugin_loader.getDataProviders(): if prov.PROVIDER_NAME == provider_type: return prov raise ConfigurationError( "Unknown data provider type: %s" % provider_type)