diff piecrust/data/filters.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 8c0c53a315ae
children afd230972167
line wrap: on
line diff
--- a/piecrust/data/filters.py	Sun May 21 00:06:59 2017 -0700
+++ b/piecrust/data/filters.py	Sun Jun 04 23:34:28 2017 -0700
@@ -4,14 +4,9 @@
 logger = logging.getLogger(__name__)
 
 
-def page_value_accessor(page, name):
-    return page.config.get(name)
-
-
 class PaginationFilter(object):
-    def __init__(self, value_accessor=None):
+    def __init__(self):
         self.root_clause = None
-        self.value_accessor = value_accessor or self._default_value_accessor
 
     @property
     def is_empty(self):
@@ -81,13 +76,6 @@
             else:
                 raise Exception("Unknown filter clause: %s" % key)
 
-    @staticmethod
-    def _default_value_accessor(item, name):
-        try:
-            return getattr(item, name)
-        except AttributeError:
-            return None
-
 
 class IFilterClause(object):
     def addClause(self, clause):
@@ -151,7 +139,7 @@
 
 class HasFilterClause(SettingFilterClause):
     def pageMatches(self, fil, page):
-        actual_value = fil.value_accessor(page, self.name)
+        actual_value = page.config.get(self.name)
         if actual_value is None or not isinstance(actual_value, list):
             return False
 
@@ -163,7 +151,7 @@
 
 class IsFilterClause(SettingFilterClause):
     def pageMatches(self, fil, page):
-        actual_value = fil.value_accessor(page, self.name)
+        actual_value = page.config.get(self.name)
         if self.coercer:
             actual_value = self.coercer(actual_value)
         return actual_value == self.value