Mercurial > piecrust2
comparison piecrust/processing/base.py @ 39:2f717f961996
Better error reporting and cache validation.
Fix the processor pipeline in the preview server.
Move the `pages` route to first position.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 21 Aug 2014 22:28:22 -0700 |
parents | 485682a6de50 |
children | 45828c4167ad |
comparison
equal
deleted
inserted
replaced
38:091f99bfbe44 | 39:2f717f961996 |
---|---|
113 return entry | 113 return entry |
114 return None | 114 return None |
115 | 115 |
116 | 116 |
117 class ProcessorPipelineRecordEntry(object): | 117 class ProcessorPipelineRecordEntry(object): |
118 def __init__(self, rel_input, is_processed=False, is_overridden=False): | 118 def __init__(self, base_dir, rel_input, is_processed=False, |
119 is_overridden=False): | |
120 self.base_dir = base_dir | |
119 self.rel_input = rel_input | 121 self.rel_input = rel_input |
120 self.rel_outputs = [] | 122 self.rel_outputs = [] |
121 self.is_processed = is_processed | 123 self.is_processed = is_processed |
122 self.is_overridden = is_overridden | 124 self.is_overridden = is_overridden |
125 | |
126 @property | |
127 def path(self): | |
128 return os.path.join(self.base_dir, self.rel_input) | |
123 | 129 |
124 | 130 |
125 class ProcessingContext(object): | 131 class ProcessingContext(object): |
126 def __init__(self, base_dir, job_queue, record=None): | 132 def __init__(self, base_dir, job_queue, record=None): |
127 self.base_dir = base_dir | 133 self.base_dir = base_dir |
282 | 288 |
283 # Figure out if a previously processed file is overriding this one. | 289 # Figure out if a previously processed file is overriding this one. |
284 # This can happen if a theme file (processed via a mount point) | 290 # This can happen if a theme file (processed via a mount point) |
285 # is overridden in the user's website. | 291 # is overridden in the user's website. |
286 if record.hasOverrideEntry(rel_path): | 292 if record.hasOverrideEntry(rel_path): |
287 record.addEntry(ProcessorPipelineRecordEntry(rel_path, | 293 record.addEntry(ProcessorPipelineRecordEntry( |
294 job.base_dir, rel_path, | |
288 is_processed=False, is_overridden=True)) | 295 is_processed=False, is_overridden=True)) |
289 logger.info(format_timed(start_time, | 296 logger.info(format_timed(start_time, |
290 '%s [not baked, overridden]' % rel_path)) | 297 '%s [not baked, overridden]' % rel_path)) |
291 return | 298 return |
292 | 299 |
293 builder = ProcessingTreeBuilder(pipeline.processors) | 300 builder = ProcessingTreeBuilder(pipeline.processors) |
294 tree_root = builder.build(rel_path) | 301 tree_root = builder.build(rel_path) |
295 print_node(tree_root, recursive=True) | 302 print_node(tree_root, recursive=True) |
296 leaves = tree_root.getLeaves() | 303 leaves = tree_root.getLeaves() |
297 fi = ProcessorPipelineRecordEntry(rel_path) | 304 fi = ProcessorPipelineRecordEntry(job.base_dir, rel_path) |
298 fi.rel_outputs = [l.path for l in leaves] | 305 fi.rel_outputs = [l.path for l in leaves] |
299 record.addEntry(fi) | 306 record.addEntry(fi) |
300 | 307 |
301 force = pipeline.force | 308 force = pipeline.force |
302 if not force: | 309 if not force: |