comparison piecrust/processing/worker.py @ 435:5ceb86818dc5

bug: Fix a crash when errors occur while processing an asset.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 27 Jun 2015 21:48:12 -0700
parents 4a43d7015b75
children 171dde4f61dc
comparison
equal deleted inserted replaced
434:6238dcfc7a78 435:5ceb86818dc5
151 with app.env.timerScope('BuildProcessingTree'): 151 with app.env.timerScope('BuildProcessingTree'):
152 builder = ProcessingTreeBuilder(processors) 152 builder = ProcessingTreeBuilder(processors)
153 tree_root = builder.build(rel_path) 153 tree_root = builder.build(rel_path)
154 result.flags |= FLAG_PREPARED 154 result.flags |= FLAG_PREPARED
155 except ProcessingTreeError as ex: 155 except ProcessingTreeError as ex:
156 result.errors += _get_errors(ex) 156 result.errors = _get_errors(ex)
157 return result 157 return result
158 158
159 # Prepare and run the tree. 159 # Prepare and run the tree.
160 print_node(tree_root, recursive=True) 160 print_node(tree_root, recursive=True)
161 leaves = tree_root.getLeaves() 161 leaves = tree_root.getLeaves()
175 result.flags |= FLAG_PROCESSED 175 result.flags |= FLAG_PROCESSED
176 except ProcessingTreeError as ex: 176 except ProcessingTreeError as ex:
177 if isinstance(ex, ProcessorError): 177 if isinstance(ex, ProcessorError):
178 ex = ex.__cause__ 178 ex = ex.__cause__
179 # Need to strip out colored errors from external processes. 179 # Need to strip out colored errors from external processes.
180 result.errors += _get_errors(ex, strip_colors=True) 180 result.errors = _get_errors(ex, strip_colors=True)
181 181
182 return result 182 return result
183 183
184 184
185 def get_filtered_processors(processors, authorized_names): 185 def get_filtered_processors(processors, authorized_names):