Mercurial > piecrust2
comparison piecrust/sources/blogarchives.py @ 854:08e02c2a2a1a
core: Keep refactoring, this time to prepare for generator sources.
- Make a few APIs simpler.
- Content pipelines create their own jobs, so that generator sources can
keep aborting in `getContents`, but rely on their pipeline to generate
pages for baking.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 04 Jun 2017 23:34:28 -0700 |
parents | f070a4fc033c |
children | 9bb22bbe093c |
comparison
equal
deleted
inserted
replaced
853:f070a4fc033c | 854:08e02c2a2a1a |
---|---|
1 import logging | 1 import logging |
2 import datetime | 2 import datetime |
3 from piecrust.chefutil import format_timed_scope | 3 from piecrust.chefutil import format_timed_scope |
4 from piecrust.data.filters import PaginationFilter, IFilterClause | 4 from piecrust.data.filters import PaginationFilter, IFilterClause |
5 from piecrust.dataproviders.page_iterator import PageIterator | 5 from piecrust.dataproviders.pageiterator import PageIterator |
6 from piecrust.pipelines.base import ContentPipeline | |
6 from piecrust.routing import RouteParameter | 7 from piecrust.routing import RouteParameter |
7 from piecrust.sources.base import ContentSource, GeneratedContentException | 8 from piecrust.sources.base import ContentSource, GeneratedContentException |
8 | 9 |
9 | 10 |
10 logger = logging.getLogger(__name__) | 11 logger = logging.getLogger(__name__) |
11 | 12 |
12 | 13 |
13 class BlogArchivesSource(ContentSource): | 14 class BlogArchivesSource(ContentSource): |
14 SOURCE_NAME = 'blog_archives' | 15 SOURCE_NAME = 'blog_archives' |
16 DEFAULT_PIPELINE_NAME = 'blog_archives' | |
15 | 17 |
16 def __init__(self, app, name, config): | 18 def __init__(self, app, name, config): |
17 super().__init__(app, name, config) | 19 super().__init__(app, name, config) |
18 | 20 |
19 def getContents(self, group): | 21 def getContents(self, group): |
122 | 124 |
123 | 125 |
124 def _date_sorter(it): | 126 def _date_sorter(it): |
125 return sorted(it, key=lambda x: x.datetime) | 127 return sorted(it, key=lambda x: x.datetime) |
126 | 128 |
129 | |
130 class BlogArchivesPipeline(ContentPipeline): | |
131 PIPELINE_NAME = 'blog_archives' | |
132 PASS_NUM = 1 |