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