Mercurial > piecrust2
comparison piecrust/pipelines/base.py @ 853:f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
The asset pipeline is still the only function pipeline at this point.
* No more `QualifiedPage`, and several other pieces of code deleted.
* Data providers are simpler and more focused. For instance, the page iterator
doesn't try to support other types of items.
* Route parameters are proper known source metadata to remove the confusion
between the two.
* Make the baker and pipeline more correctly manage records and record
histories.
* Add support for record collapsing and deleting stale outputs in the asset
pipeline.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 21 May 2017 00:06:59 -0700 |
parents | 4850f8c21b6e |
children | 08e02c2a2a1a |
comparison
equal
deleted
inserted
replaced
852:4850f8c21b6e | 853:f070a4fc033c |
---|---|
28 the main process (and not a worker process). This is the case | 28 the main process (and not a worker process). This is the case |
29 if there are no worker processes at all. | 29 if there are no worker processes at all. |
30 """ | 30 """ |
31 return self.worker_id < 0 | 31 return self.worker_id < 0 |
32 | 32 |
33 @property | |
34 def current_record(self): | |
35 return self.record_history.current | |
36 | |
33 | 37 |
34 class PipelineResult: | 38 class PipelineResult: |
35 def __init__(self, record): | 39 """ Result of running a pipeline on a content item. |
36 self.record = record | 40 """ |
41 def __init__(self): | |
42 self.pipeline_name = None | |
43 self.record_entry = None | |
37 | 44 |
38 | 45 |
39 class ContentPipeline: | 46 class ContentPipeline: |
40 """ A pipeline that processes content from a `ContentSource`. | 47 """ A pipeline that processes content from a `ContentSource`. |
41 """ | 48 """ |
42 PIPELINE_NAME = None | 49 PIPELINE_NAME = None |
43 PIPELINE_PASSES = 1 | 50 PIPELINE_PASSES = 1 |
44 RECORD_CLASS = None | 51 RECORD_ENTRY_CLASS = None |
45 | 52 |
46 def __init__(self, source): | 53 def __init__(self, source): |
47 self.source = source | 54 self.source = source |
48 | 55 |
49 app = source.app | 56 app = source.app |
61 pass | 68 pass |
62 | 69 |
63 def run(self, content_item, ctx, result): | 70 def run(self, content_item, ctx, result): |
64 raise NotImplementedError() | 71 raise NotImplementedError() |
65 | 72 |
73 def getDeletions(self, ctx): | |
74 pass | |
75 | |
76 def collapseRecords(self, ctx): | |
77 pass | |
78 | |
66 def shutdown(self, ctx): | 79 def shutdown(self, ctx): |
67 pass | 80 pass |
68 | |
69 def collapseRecords(self, record_history): | |
70 pass | |
71 | |
72 def getDeletions(self, record_history): | |
73 pass |