diff piecrust/pipelines/_procrecords.py @ 852:4850f8c21b6e

core: Start of the big refactor for PieCrust 3.0. * Everything is a `ContentSource`, including assets directories. * Most content sources are subclasses of the base file-system source. * A source is processed by a "pipeline", and there are 2 built-in pipelines, one for assets and one for pages. The asset pipeline is vaguely functional, but the page pipeline is completely broken right now. * Rewrite the baking process as just running appropriate pipelines on each content item. This should allow for better parallelization.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 17 May 2017 00:11:48 -0700
parents
children f070a4fc033c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/piecrust/pipelines/_procrecords.py	Wed May 17 00:11:48 2017 -0700
@@ -0,0 +1,35 @@
+from piecrust.pipelines.records import RecordEntry
+
+
+class AssetPipelineRecordEntry(RecordEntry):
+    FLAG_NONE = 0
+    FLAG_PREPARED = 2**0
+    FLAG_PROCESSED = 2**1
+    FLAG_BYPASSED_STRUCTURED_PROCESSING = 2**3
+    FLAG_COLLAPSED_FROM_LAST_RUN = 2**4
+
+    def __init__(self):
+        super().__init__()
+        self.out_paths = []
+        self.flags = self.FLAG_NONE
+        self.proc_tree = None
+
+    @property
+    def was_prepared(self):
+        return bool(self.flags & self.FLAG_PREPARED)
+
+    @property
+    def was_processed(self):
+        return (self.was_prepared and
+                (bool(self.flags & self.FLAG_PROCESSED) or
+                 len(self.errors) > 0))
+
+    @property
+    def was_processed_successfully(self):
+        return self.was_processed and not self.errors
+
+    @property
+    def was_collapsed_from_last_run(self):
+        return self.flags & self.FLAG_COLLAPSED_FROM_LAST_RUN
+
+