Mercurial > piecrust2
view piecrust/sources/generator.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 | d1095774bfcf |
children |
line wrap: on
line source
import io import time from werkzeug.utils import cached_property from piecrust.configuration import ConfigurationError from piecrust.sources.base import ContentSource, GeneratedContentException class GeneratorSourceBase(ContentSource): def __init__(self, app, name, config): super().__init__(app, name, config) source_name = config.get('source') if source_name is None: raise ConfigurationError( "Taxonomy source '%s' requires an inner source." % name) self._inner_source_name = source_name self._raw_item = '' self._raw_item_time = time.time() @cached_property def inner_source(self): return self.app.getSource(self._inner_source_name) def getContents(self, group): # Our content is procedurally generated from other content sources, # so we really don't support listing anything here -- it would be # typically quite costly. raise GeneratedContentException() def openItem(self, item, mode='r', **kwargs): return io.StringIO(self._raw_item) def getItemMtime(self, item): return self._raw_item_time