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: |
