comparison piecrust/sources/generator.py @ 856:9bb22bbe093c

refactor: Make the blog archives functional again. The blog archives are using the same pattern as the taxonomy support.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 06 Jun 2017 01:23:25 -0700
parents
children d1095774bfcf
comparison
equal deleted inserted replaced
855:448710d84121 856:9bb22bbe093c
1 import io
2 import time
3 from werkzeug.utils import cached_property
4 from piecrust.configuration import ConfigurationError
5 from piecrust.sources.base import ContentSource, GeneratedContentException
6
7
8 class GeneratorSourceBase(ContentSource):
9 def __init__(self, app, name, config):
10 super().__init__(app, name, config)
11
12 source_name = config.get('source')
13 if source_name is None:
14 raise ConfigurationError(
15 "Taxonomy source '%s' requires an inner source." % name)
16 self._inner_source_name = source_name
17
18 self._raw_item = ''
19
20 @cached_property
21 def inner_source(self):
22 return self.app.getSource(self._inner_source_name)
23
24 def getContents(self, group):
25 # Our content is procedurally generated from other content sources,
26 # so we really don't support listing anything here -- it would be
27 # typically quite costly.
28 raise GeneratedContentException()
29
30 def openItem(self, item, mode='r', **kwargs):
31 return io.StringIO(self._raw_item)
32
33 def getItemMtime(self, item):
34 return time.time()
35