comparison piecrust/data/pagedata.py @ 548:785dea918ad8

debug: Fix a crash when rendering debug info for some pages.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 02 Aug 2015 23:01:59 -0700
parents 32c7c2d219d2
children ab5c6a8ae90a
comparison
equal deleted inserted replaced
547:8c9057bb0fea 548:785dea918ad8
36 return self._getValue(name) 36 return self._getValue(name)
37 except LazyPageConfigLoaderHasNoValue as ex: 37 except LazyPageConfigLoaderHasNoValue as ex:
38 raise KeyError("No such key: %s" % name) from ex 38 raise KeyError("No such key: %s" % name) from ex
39 39
40 def __iter__(self): 40 def __iter__(self):
41 keys = list(self._page.config.keys()) 41 keys = set(self._page.config.keys())
42 keys += list(self._values.keys()) 42 keys |= set(self._values.keys())
43 keys += list(self._loaders.keys()) 43 keys |= set(self._loaders.keys())
44 keys.discard('*')
44 return iter(keys) 45 return iter(keys)
45 46
46 def __len__(self): 47 def __len__(self):
47 return len(self._page.config) + len(self._values) + len(self._loaders) 48 return len(self._page.config) + len(self._values) + len(self._loaders)
48 49
134 def _debugRenderKeys(self): 135 def _debugRenderKeys(self):
135 self._ensureLoaded() 136 self._ensureLoaded()
136 keys = set(self._values.keys()) 137 keys = set(self._values.keys())
137 if self._loaders: 138 if self._loaders:
138 keys |= set(self._loaders.keys()) 139 keys |= set(self._loaders.keys())
140 keys.discard('*')
139 return list(keys) 141 return list(keys)
140 142
141 143
142 class PageData(LazyPageConfigData): 144 class PageData(LazyPageConfigData):
143 """ Template data for a page. 145 """ Template data for a page.