Mercurial > piecrust2
diff piecrust/data/iterators.py @ 852:4850f8c21b6e
core: Start of the big refactor for PieCrust 3.0.
* Everything is a `ContentSource`, including assets directories.
* Most content sources are subclasses of the base file-system source.
* A source is processed by a "pipeline", and there are 2 built-in pipelines,
one for assets and one for pages. The asset pipeline is vaguely functional,
but the page pipeline is completely broken right now.
* Rewrite the baking process as just running appropriate pipelines on each
content item. This should allow for better parallelization.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 17 May 2017 00:11:48 -0700 |
parents | e35407c60e00 |
children |
line wrap: on
line diff
--- a/piecrust/data/iterators.py Sat Apr 29 21:42:22 2017 -0700 +++ b/piecrust/data/iterators.py Wed May 17 00:11:48 2017 -0700 @@ -1,8 +1,7 @@ import logging -from piecrust.data.filters import PaginationFilter, IsFilterClause, NotClause -from piecrust.environment import AbortedSourceUseError +from piecrust.data.filters import PaginationFilter from piecrust.events import Event -from piecrust.sources.base import PageSource +from piecrust.sources.base import ContentSource, AbortedSourceUseError from piecrust.sources.interfaces import IPaginationSource @@ -146,20 +145,6 @@ if src_it is not None: self._pages = src_it - # If we're currently baking, apply the default baker filter - # to exclude things like draft posts. - if (isinstance(source, PageSource) and - source.app.config.get('baker/is_baking')): - setting_name = source.app.config.get('baker/no_bake_setting', - 'draft') - accessor = self._getSettingAccessor() - draft_filter = PaginationFilter(accessor) - draft_filter.root_clause = NotClause() - draft_filter.root_clause.addClause( - IsFilterClause(setting_name, True)) - self._simpleNonSortedWrap( - PaginationFilterIterator, draft_filter) - # Apply any filter first, before we start sorting or slicing. if pagination_filter is not None: self._simpleNonSortedWrap(PaginationFilterIterator, @@ -325,7 +310,7 @@ if (self._current_page is not None and self._current_page.app.env.abort_source_use and - isinstance(self._source, PageSource)): + isinstance(self._source, ContentSource)): logger.debug("Aborting iteration from %s." % self._current_page.ref_spec) raise AbortedSourceUseError()