Mercurial > piecrust2
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