Mercurial > piecrust2
comparison piecrust/data/provider.py @ 7:343d08ef5668
More PieCrust 3 fixes, and a couple of miscellaneous bug fixes.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 16 Aug 2014 15:07:22 -0700 |
parents | 474c9882decf |
children | 923699e816d0 |
comparison
equal
deleted
inserted
replaced
6:f5ca5c5bed85 | 7:343d08ef5668 |
---|---|
1 import time | 1 import time |
2 import itertools | |
3 from piecrust.data.iterators import PageIterator | 2 from piecrust.data.iterators import PageIterator |
4 from piecrust.sources.base import ArraySource | 3 from piecrust.sources.base import ArraySource |
5 | 4 |
6 | 5 |
7 class DataProvider(object): | 6 class DataProvider(object): |
16 self._page = page | 15 self._page = page |
17 self._user_data = user_data | 16 self._user_data = user_data |
18 | 17 |
19 def __getattr__(self, name): | 18 def __getattr__(self, name): |
20 if self._user_data is not None: | 19 if self._user_data is not None: |
21 return self._user_data[name] | 20 try: |
21 return self._user_data[name] | |
22 except KeyError: | |
23 pass | |
22 raise AttributeError() | 24 raise AttributeError() |
23 | 25 |
24 def __getitem__(self, name): | 26 def __getitem__(self, name): |
25 if self._user_data is not None: | 27 if self._user_data is not None: |
26 return self._user_data[name] | 28 return self._user_data[name] |
168 | 170 |
169 posts_by_tax_value = {} | 171 posts_by_tax_value = {} |
170 for fac in self._source.getPageFactories(): | 172 for fac in self._source.getPageFactories(): |
171 post = fac.buildPage() | 173 post = fac.buildPage() |
172 tax_values = post.config.get(tax_name) | 174 tax_values = post.config.get(tax_name) |
175 if tax_values is None: | |
176 continue | |
173 if not isinstance(tax_values, list): | 177 if not isinstance(tax_values, list): |
174 tax_values = [tax_values] | 178 tax_values = [tax_values] |
175 for val in tax_values: | 179 for val in tax_values: |
176 posts_by_tax_value.setdefault(val, []) | 180 posts_by_tax_value.setdefault(val, []) |
177 posts_by_tax_value[val].append(post) | 181 posts_by_tax_value[val].append(post) |