From a1d337203c27135365f5903d2e315a7b79d24735 Mon Sep 17 00:00:00 2001
From: Stefano Borini <sborini@enthought.com>
Date: Wed, 26 Jul 2017 12:48:39 +0100
Subject: [PATCH] Moved additional plugins to the dummy core plugin.

---
 .../csv_extractor/csv_extractor/__init__.py   |  0
 .../csv_extractor/csv_extractor_bundle.py     | 21 ------------
 .../csv_extractor_data_source.py              | 25 --------------
 .../csv_extractor/csv_extractor_model.py      | 10 ------
 .../csv_extractor/csv_extractor_plugin.py     |  8 -----
 force_bdss/core_plugins/dummy/dummy_plugin.py |  8 +++--
 .../kpi_adder}/__init__.py                    |  0
 .../kpi_adder/kpi_adder_bundle.py             |  0
 .../kpi_adder/kpi_adder_calculator.py         |  0
 .../kpi_adder/kpi_adder_model.py              |  0
 force_bdss/core_plugins/dummy_kpi/__init__.py |  0
 .../dummy_kpi/dummy_kpi_calculator_plugin.py  |  8 -----
 .../dummy_kpi/kpi_adder/__init__.py           |  0
 force_bdss/core_plugins/dummy_mco/__init__.py |  0
 .../core_plugins/dummy_mco/dakota/__init__.py |  0
 .../dummy_mco/dakota/dakota_bundle.py         | 23 -------------
 .../dummy_mco/dakota/dakota_communicator.py   | 34 -------------------
 .../dummy_mco/dakota/dakota_model.py          |  7 ----
 .../dummy_mco/dakota/dakota_optimizer.py      | 20 -----------
 .../multi_criteria_optimizers_plugin.py       |  8 -----
 force_bdss/tests/fixtures/test_csv.json       |  2 +-
 21 files changed, 7 insertions(+), 167 deletions(-)
 delete mode 100644 force_bdss/core_plugins/csv_extractor/csv_extractor/__init__.py
 delete mode 100644 force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_bundle.py
 delete mode 100644 force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_data_source.py
 delete mode 100644 force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_model.py
 delete mode 100644 force_bdss/core_plugins/csv_extractor/csv_extractor_plugin.py
 rename force_bdss/core_plugins/{csv_extractor => dummy/kpi_adder}/__init__.py (100%)
 rename force_bdss/core_plugins/{dummy_kpi => dummy}/kpi_adder/kpi_adder_bundle.py (100%)
 rename force_bdss/core_plugins/{dummy_kpi => dummy}/kpi_adder/kpi_adder_calculator.py (100%)
 rename force_bdss/core_plugins/{dummy_kpi => dummy}/kpi_adder/kpi_adder_model.py (100%)
 delete mode 100644 force_bdss/core_plugins/dummy_kpi/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy_kpi/dummy_kpi_calculator_plugin.py
 delete mode 100644 force_bdss/core_plugins/dummy_kpi/kpi_adder/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy_mco/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy_mco/dakota/__init__.py
 delete mode 100644 force_bdss/core_plugins/dummy_mco/dakota/dakota_bundle.py
 delete mode 100644 force_bdss/core_plugins/dummy_mco/dakota/dakota_communicator.py
 delete mode 100644 force_bdss/core_plugins/dummy_mco/dakota/dakota_model.py
 delete mode 100644 force_bdss/core_plugins/dummy_mco/dakota/dakota_optimizer.py
 delete mode 100644 force_bdss/core_plugins/dummy_mco/multi_criteria_optimizers_plugin.py

diff --git a/force_bdss/core_plugins/csv_extractor/csv_extractor/__init__.py b/force_bdss/core_plugins/csv_extractor/csv_extractor/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_bundle.py b/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_bundle.py
deleted file mode 100644
index 55f998c..0000000
--- a/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_bundle.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from traits.api import String
-
-from force_bdss.api import bundle_id, BaseDataSourceBundle
-
-from .csv_extractor_model import CSVExtractorModel
-from .csv_extractor_data_source import CSVExtractorDataSource
-
-
-class CSVExtractorBundle(BaseDataSourceBundle):
-    id = String(bundle_id("enthought", "csv_extractor"))
-
-    name = String("CSV Extractor")
-
-    def create_model(self, model_data=None):
-        if model_data is None:
-            model_data = {}
-
-        return CSVExtractorModel(self, **model_data)
-
-    def create_data_source(self, application, model):
-        return CSVExtractorDataSource(self, application, model)
diff --git a/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_data_source.py b/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_data_source.py
deleted file mode 100644
index f2835f8..0000000
--- a/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_data_source.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import csv
-import numpy
-from force_bdss.api import BaseDataSource
-from force_bdss.api import DataSourceResult
-
-
-class CSVExtractorDataSource(BaseDataSource):
-    def run(self, parameters):
-        with open(self.model.filename) as csvfile:
-            reader = csv.reader(csvfile)
-            for rowindex, row in enumerate(reader):
-                if rowindex < self.model.row:
-                    continue
-
-                if rowindex == self.model.row:
-                    return DataSourceResult(
-                        originator=self,
-                        value_types=[self.model.cuba_type],
-                        values=numpy.array(
-                            parameters.values[0]+float(
-                                row[self.model.column])).reshape(1, 1)
-                    )
-
-                return None
-            return None
diff --git a/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_model.py b/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_model.py
deleted file mode 100644
index ad8d34b..0000000
--- a/force_bdss/core_plugins/csv_extractor/csv_extractor/csv_extractor_model.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from traits.api import Int, String
-
-from force_bdss.api import BaseDataSourceModel
-
-
-class CSVExtractorModel(BaseDataSourceModel):
-    filename = String()
-    row = Int()
-    column = Int()
-    cuba_type = String()
diff --git a/force_bdss/core_plugins/csv_extractor/csv_extractor_plugin.py b/force_bdss/core_plugins/csv_extractor/csv_extractor_plugin.py
deleted file mode 100644
index 9020fc8..0000000
--- a/force_bdss/core_plugins/csv_extractor/csv_extractor_plugin.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from force_bdss.api import BaseExtensionPlugin
-
-from .csv_extractor.csv_extractor_bundle import CSVExtractorBundle
-
-
-class CSVExtractorPlugin(BaseExtensionPlugin):
-    def _data_source_bundles_default(self):
-        return [CSVExtractorBundle()]
diff --git a/force_bdss/core_plugins/dummy/dummy_plugin.py b/force_bdss/core_plugins/dummy/dummy_plugin.py
index 0185072..3eca5b3 100644
--- a/force_bdss/core_plugins/dummy/dummy_plugin.py
+++ b/force_bdss/core_plugins/dummy/dummy_plugin.py
@@ -1,4 +1,6 @@
 from force_bdss.api import BaseExtensionPlugin
+from .csv_extractor.csv_extractor_bundle import CSVExtractorBundle
+from .kpi_adder.kpi_adder_bundle import KPIAdderBundle
 from .dummy_dakota.dakota_bundle import DummyDakotaBundle
 from .dummy_data_source.dummy_data_source_bundle import DummyDataSourceBundle
 from .dummy_kpi_calculator.dummy_kpi_calculator_bundle import (
@@ -8,10 +10,12 @@ from .dummy_kpi_calculator.dummy_kpi_calculator_bundle import (
 
 class DummyPlugin(BaseExtensionPlugin):
     def _data_source_bundles_default(self):
-        return [DummyDataSourceBundle()]
+        return [DummyDataSourceBundle(),
+                CSVExtractorBundle()]
 
     def _mco_bundles_default(self):
         return [DummyDakotaBundle()]
 
     def _kpi_calculator_bundles_default(self):
-        return [DummyKPICalculatorBundle()]
+        return [DummyKPICalculatorBundle(),
+                KPIAdderBundle()]
diff --git a/force_bdss/core_plugins/csv_extractor/__init__.py b/force_bdss/core_plugins/dummy/kpi_adder/__init__.py
similarity index 100%
rename from force_bdss/core_plugins/csv_extractor/__init__.py
rename to force_bdss/core_plugins/dummy/kpi_adder/__init__.py
diff --git a/force_bdss/core_plugins/dummy_kpi/kpi_adder/kpi_adder_bundle.py b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_bundle.py
similarity index 100%
rename from force_bdss/core_plugins/dummy_kpi/kpi_adder/kpi_adder_bundle.py
rename to force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_bundle.py
diff --git a/force_bdss/core_plugins/dummy_kpi/kpi_adder/kpi_adder_calculator.py b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py
similarity index 100%
rename from force_bdss/core_plugins/dummy_kpi/kpi_adder/kpi_adder_calculator.py
rename to force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py
diff --git a/force_bdss/core_plugins/dummy_kpi/kpi_adder/kpi_adder_model.py b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_model.py
similarity index 100%
rename from force_bdss/core_plugins/dummy_kpi/kpi_adder/kpi_adder_model.py
rename to force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_model.py
diff --git a/force_bdss/core_plugins/dummy_kpi/__init__.py b/force_bdss/core_plugins/dummy_kpi/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy_kpi/dummy_kpi_calculator_plugin.py b/force_bdss/core_plugins/dummy_kpi/dummy_kpi_calculator_plugin.py
deleted file mode 100644
index 1e42772..0000000
--- a/force_bdss/core_plugins/dummy_kpi/dummy_kpi_calculator_plugin.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from force_bdss.api import BaseExtensionPlugin
-
-from .kpi_adder.kpi_adder_bundle import KPIAdderBundle
-
-
-class DummyKPICalculatorPlugin(BaseExtensionPlugin):
-    def _kpi_calculator_bundles_default(self):
-        return [KPIAdderBundle()]
diff --git a/force_bdss/core_plugins/dummy_kpi/kpi_adder/__init__.py b/force_bdss/core_plugins/dummy_kpi/kpi_adder/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy_mco/__init__.py b/force_bdss/core_plugins/dummy_mco/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy_mco/dakota/__init__.py b/force_bdss/core_plugins/dummy_mco/dakota/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/force_bdss/core_plugins/dummy_mco/dakota/dakota_bundle.py b/force_bdss/core_plugins/dummy_mco/dakota/dakota_bundle.py
deleted file mode 100644
index e4d9f44..0000000
--- a/force_bdss/core_plugins/dummy_mco/dakota/dakota_bundle.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from traits.api import String
-from force_bdss.api import bundle_id, BaseMultiCriteriaOptimizerBundle
-
-from .dakota_communicator import DakotaCommunicator
-from .dakota_model import DakotaModel
-from .dakota_optimizer import DakotaOptimizer
-
-
-class DakotaBundle(BaseMultiCriteriaOptimizerBundle):
-    id = String(bundle_id("enthought", "dakota"))
-
-    name = "Dakota"
-
-    def create_model(self, model_data=None):
-        if model_data is None:
-            model_data = {}
-        return DakotaModel(self, **model_data)
-
-    def create_optimizer(self, application, model):
-        return DakotaOptimizer(self, application, model)
-
-    def create_communicator(self, application, model):
-        return DakotaCommunicator(self, application, model)
diff --git a/force_bdss/core_plugins/dummy_mco/dakota/dakota_communicator.py b/force_bdss/core_plugins/dummy_mco/dakota/dakota_communicator.py
deleted file mode 100644
index 1605eba..0000000
--- a/force_bdss/core_plugins/dummy_mco/dakota/dakota_communicator.py
+++ /dev/null
@@ -1,34 +0,0 @@
-import sys
-import numpy
-
-from force_bdss.api import DataSourceParameters, BaseMCOCommunicator
-
-
-class DakotaCommunicator(BaseMCOCommunicator):
-    def receive_from_mco(self):
-        data = sys.stdin.read()
-        values = list(map(float, data.split()))
-
-        parameters = self.model.parameters
-
-        if len(values) != len(parameters):
-            raise ValueError(
-                "The passed information length is {}, "
-                "but the model specifies {} values.".format(
-                    len(values), len(parameters)
-                ))
-
-        value_types = [p.value_type for p in parameters]
-        value_names = [p.value_name for p in parameters]
-
-        return DataSourceParameters(
-            value_names=value_names,
-            value_types=value_types,
-            values=numpy.array(values)
-        )
-
-    def send_to_mco(self, kpi_results):
-        data = " ".join(
-            [" ".join(list(map(str, r.values.tolist()))) for r in kpi_results]
-        )
-        sys.stdout.write(data)
diff --git a/force_bdss/core_plugins/dummy_mco/dakota/dakota_model.py b/force_bdss/core_plugins/dummy_mco/dakota/dakota_model.py
deleted file mode 100644
index b4c081a..0000000
--- a/force_bdss/core_plugins/dummy_mco/dakota/dakota_model.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from traits.api import List, String
-
-from force_bdss.api import BaseMCOModel
-
-
-class DakotaModel(BaseMCOModel):
-    value_types = List(String)
diff --git a/force_bdss/core_plugins/dummy_mco/dakota/dakota_optimizer.py b/force_bdss/core_plugins/dummy_mco/dakota/dakota_optimizer.py
deleted file mode 100644
index 6b607cf..0000000
--- a/force_bdss/core_plugins/dummy_mco/dakota/dakota_optimizer.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import subprocess
-
-import sys
-
-from force_bdss.api import BaseMultiCriteriaOptimizer
-
-
-class DakotaOptimizer(BaseMultiCriteriaOptimizer):
-    def run(self):
-        print("Running dakota optimizer")
-        for initial_value in range(10):
-            ps = subprocess.Popen(
-                [sys.argv[0],
-                 "--evaluate",
-                 self.application.workflow_filepath],
-                stdout=subprocess.PIPE,
-                stdin=subprocess.PIPE)
-
-            out = ps.communicate("{}".format(initial_value).encode("utf-8"))
-            print("{}: {}".format(initial_value, out[0].decode("utf-8")))
diff --git a/force_bdss/core_plugins/dummy_mco/multi_criteria_optimizers_plugin.py b/force_bdss/core_plugins/dummy_mco/multi_criteria_optimizers_plugin.py
deleted file mode 100644
index 1fe302b..0000000
--- a/force_bdss/core_plugins/dummy_mco/multi_criteria_optimizers_plugin.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from force_bdss.api import BaseExtensionPlugin
-
-from .dakota.dakota_bundle import DakotaBundle
-
-
-class MultiCriteriaOptimizersPlugin(BaseExtensionPlugin):
-    def _mco_bundles_default(self):
-        return [DakotaBundle()]
diff --git a/force_bdss/tests/fixtures/test_csv.json b/force_bdss/tests/fixtures/test_csv.json
index dbd1a9d..a74afc6 100644
--- a/force_bdss/tests/fixtures/test_csv.json
+++ b/force_bdss/tests/fixtures/test_csv.json
@@ -2,7 +2,7 @@
   "version": "1",
   "workflow": {
     "multi_criteria_optimizer": {
-      "id": "force.bdss.bundle.enthought.dakota",
+      "id": "force.bdss.bundle.enthought.dummy_dakota",
       "model_data": {
         "parameters" : [
           {
-- 
GitLab