Mercurial > piecrust2
diff piecrust/baking/records.py @ 698:33ab9badfd7a
render: Change how we store render passes info.
Previously we used a dictionary with integers as keys, which doesn't go well
with JSON serialization. Now replace with an array of fixed length with items
that are `None` by default.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 23 Mar 2016 16:39:22 -0700 |
parents | 9ae9390192da |
children | ab5c6a8ae90a |
line wrap: on
line diff
--- a/piecrust/baking/records.py Wed Mar 23 12:19:35 2016 -0700 +++ b/piecrust/baking/records.py Wed Mar 23 16:39:22 2016 -0700 @@ -21,7 +21,7 @@ class BakeRecord(Record): - RECORD_VERSION = 17 + RECORD_VERSION = 18 def __init__(self): super(BakeRecord, self).__init__() @@ -45,7 +45,7 @@ self.out_path = out_path self.flags = self.FLAG_NONE self.errors = [] - self.render_info = None + self.render_info = [None, None] # Same length as RENDER_PASSES @property def was_clean(self): @@ -60,14 +60,12 @@ return self.was_baked and len(self.errors) == 0 def anyPass(self, func): - assert self.render_info is not None - for p, pinfo in self.render_info.items(): - if func(pinfo): + for pinfo in self.render_info: + if pinfo and func(pinfo): return True return False def copyRenderInfo(self): - assert self.render_info return copy.deepcopy(self.render_info) @@ -142,16 +140,16 @@ def getAllUsedSourceNames(self): res = set() for o in self.subs: - if o.render_info is not None: - for p, pinfo in o.render_info.items(): + for pinfo in o.render_info: + if pinfo: res |= pinfo.used_source_names return res def getAllUsedTaxonomyTerms(self): res = set() for o in self.subs: - if o.render_info is not None: - for p, pinfo in o.render_info.items(): + for pinfo in o.render_info: + if pinfo: res |= pinfo.used_taxonomy_terms return res