From a8385cbb928c21fb657d1f12a26d99eca38fed57 Mon Sep 17 00:00:00 2001
From: Stefano Borini <sborini@enthought.com>
Date: Wed, 19 Jul 2017 17:59:17 +0100
Subject: [PATCH] Added writer for the workflow class

---
 force_bdss/io/workflow_writer.py | 35 ++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/force_bdss/io/workflow_writer.py b/force_bdss/io/workflow_writer.py
index e69de29..05eff31 100644
--- a/force_bdss/io/workflow_writer.py
+++ b/force_bdss/io/workflow_writer.py
@@ -0,0 +1,35 @@
+import json
+from traits.api import Instance, HasStrictTraits
+
+from ..bundle_registry_plugin import BundleRegistryPlugin
+
+
+class WorkflowWriter(HasStrictTraits):
+    bundle_registry = Instance(BundleRegistryPlugin)
+
+    def __init__(self, bundle_registry, *args, **kwargs):
+        self.bundle_registry = bundle_registry
+
+        super(WorkflowWriter, self).__init__(*args, **kwargs)
+
+    def write(self, workflow, f):
+        data = {
+            "version": "1",
+        }
+
+        data["multi_criteria_optimizer"] = \
+            workflow.multi_criteria_optimizer.__getstate__()
+
+        kpic_data = []
+        for kpic in workflow.kpi_calculators:
+            kpic_data.append(kpic.__getstate__())
+
+        data["kpi_calculators"] = kpic_data
+
+        ds_data = []
+        for ds in workflow.data_sources:
+            ds_data.append(ds.__getstate__())
+
+        data["data_sources"] = ds_data
+
+        json.dump(data, f)
-- 
GitLab