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()