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