From 949031fa311e93ac478883098d6c53027069440a Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Wed, 19 Jul 2017 10:39:43 +0100 Subject: [PATCH] Changed name to id --- force_bdss/base_core_driver.py | 18 +++++------ force_bdss/cli/force_bdss.py | 3 +- force_bdss/cli/tests/__init__.py | 0 .../cli/tests/fixtures}/foo.csv | 0 .../cli/tests/fixtures}/test_csv.json | 8 ++--- force_bdss/cli/tests/test_execution.py | 31 +++++++++++++++++++ force_bdss/core_evaluation_driver.py | 10 +++--- force_bdss/core_mco_driver.py | 2 +- .../csv_extractor/csv_extractor_bundle.py | 2 +- .../csv_extractor/csv_extractor_plugin.py | 2 +- .../test_kpi/kpi_adder/kpi_adder_bundle.py | 2 +- .../test_kpi/test_kpi_calculator_plugin.py | 2 +- .../test_mco/dakota/dakota_bundle.py | 2 +- .../multi_criteria_optimizers_plugin.py | 2 +- .../data_sources/i_data_source_bundle.py | 2 +- force_bdss/kpi/i_kpi_calculator_bundle.py | 2 +- .../mco/i_multi_criteria_optimizer_bundle.py | 2 +- force_bdss/tests/__init__.py | 0 force_bdss/workspecs/data_source.py | 7 ++--- force_bdss/workspecs/kpi_calculator.py | 7 ++--- .../workspecs/multi_criteria_optimizer.py | 4 +-- 21 files changed, 69 insertions(+), 39 deletions(-) create mode 100644 force_bdss/cli/tests/__init__.py rename {examples => force_bdss/cli/tests/fixtures}/foo.csv (100%) rename {examples => force_bdss/cli/tests/fixtures}/test_csv.json (79%) create mode 100644 force_bdss/cli/tests/test_execution.py create mode 100644 force_bdss/tests/__init__.py diff --git a/force_bdss/base_core_driver.py b/force_bdss/base_core_driver.py index 7f0fa6d..b3c2702 100644 --- a/force_bdss/base_core_driver.py +++ b/force_bdss/base_core_driver.py @@ -37,27 +37,27 @@ class BaseCoreDriver(Plugin): List(IKPICalculatorBundle), id='force.bdss.kpi_calculators.bundles') - def _data_source_bundle_by_name(self, name): + def _data_source_bundle_by_id(self, id): for ds in self.data_source_bundles: - if ds.name == name: + if ds.id == id: return ds raise Exception("Requested data source {} but don't know " - "to find it.".format(name)) + "to find it.".format(id)) - def _kpi_calculator_bundle_by_name(self, name): + def _kpi_calculator_bundle_by_id(self, id): for kpic in self.kpi_calculator_bundles: - if kpic.name == name: + if kpic.id == id: return kpic raise Exception( "Requested kpi calculator {} but don't know " - "to find it.".format(name)) + "to find it.".format(id)) - def _mco_bundle_by_name(self, name): + def _mco_bundle_by_id(self, id): for mco in self.mco_bundles: - if mco.name == name: + if mco.id == id: return mco raise Exception("Requested MCO {} but it's not available" - "to compute it.".format(name)) + "to compute it.".format(id)) diff --git a/force_bdss/cli/force_bdss.py b/force_bdss/cli/force_bdss.py index 3280750..f4d9505 100644 --- a/force_bdss/cli/force_bdss.py +++ b/force_bdss/cli/force_bdss.py @@ -1,7 +1,8 @@ import click from ..bdss_application import BDSSApplication - +from traits.api import push_exception_handler +push_exception_handler(reraise_exceptions=True) @click.command() @click.option("--evaluate", is_flag=True) diff --git a/force_bdss/cli/tests/__init__.py b/force_bdss/cli/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/foo.csv b/force_bdss/cli/tests/fixtures/foo.csv similarity index 100% rename from examples/foo.csv rename to force_bdss/cli/tests/fixtures/foo.csv diff --git a/examples/test_csv.json b/force_bdss/cli/tests/fixtures/test_csv.json similarity index 79% rename from examples/test_csv.json rename to force_bdss/cli/tests/fixtures/test_csv.json index 0fe5048..119ac8c 100644 --- a/examples/test_csv.json +++ b/force_bdss/cli/tests/fixtures/test_csv.json @@ -1,13 +1,13 @@ { "multi_criteria_optimizer": { - "name": "dakota", + "id": "enthought.dakota", "model_data": { "value_types": ["DUMMY"] } }, "data_sources": [ { - "name": "csv_extractor", + "id": "enthought.csv_extractor", "model_data": { "filename": "foo.csv", "row": 3, @@ -16,7 +16,7 @@ } }, { - "name": "csv_extractor", + "id": "enthought.csv_extractor", "model_data": { "filename": "foo.csv", "row": 3, @@ -27,7 +27,7 @@ ], "kpi_calculators": [ { - "name": "kpi_adder", + "id": "enthought.kpi_adder", "model_data": { "cuba_type_in": "PRESSURE", "cuba_type_out": "TOTAL_PRESSURE" diff --git a/force_bdss/cli/tests/test_execution.py b/force_bdss/cli/tests/test_execution.py new file mode 100644 index 0000000..3e4d28d --- /dev/null +++ b/force_bdss/cli/tests/test_execution.py @@ -0,0 +1,31 @@ +import unittest +import subprocess +import os +from contextlib import contextmanager + + +@contextmanager +def cd(dir): + cwd = os.curdir + os.chdir(dir) + try: + yield + finally: + os.chdir(cwd) + + +def fixture_dir(): + return os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "fixtures") + + +class TestExecution(unittest.TestCase): + def test_plain_invocation_mco(self): + with cd(fixture_dir()): + out = subprocess.check_call(["force_bdss", "test_csv.json"]) + self.assertEqual(out, 0) + + +if __name__ == '__main__': + unittest.main() diff --git a/force_bdss/core_evaluation_driver.py b/force_bdss/core_evaluation_driver.py index 831c539..bf6c848 100644 --- a/force_bdss/core_evaluation_driver.py +++ b/force_bdss/core_evaluation_driver.py @@ -13,7 +13,7 @@ class CoreEvaluationDriver(BaseCoreDriver): workflow = self.application.workflow mco_data = workflow.multi_criteria_optimizer - mco_bundle = self._mco_bundle_by_name(mco_data.name) + mco_bundle = self._mco_bundle_by_id(mco_data.id) mco_model = mco_bundle.create_model(mco_data.model_data) mco_communicator = mco_bundle.create_communicator( self.application, @@ -23,8 +23,8 @@ class CoreEvaluationDriver(BaseCoreDriver): ds_results = [] for requested_ds in workflow.data_sources: - ds_bundle = self._data_source_bundle_by_name( - requested_ds.name) + ds_bundle = self._data_source_bundle_by_id( + requested_ds.id) ds_model = ds_bundle.create_model(requested_ds.model_data) data_source = ds_bundle.create_data_source( self.application, ds_model) @@ -32,8 +32,8 @@ class CoreEvaluationDriver(BaseCoreDriver): kpi_results = [] for requested_kpic in workflow.kpi_calculators: - kpic_bundle = self._kpi_calculator_bundle_by_name( - requested_kpic.name) + kpic_bundle = self._kpi_calculator_bundle_by_id( + requested_kpic.id) ds_model = kpic_bundle.create_model( requested_kpic.model_data) kpi_calculator = kpic_bundle.create_data_source( diff --git a/force_bdss/core_mco_driver.py b/force_bdss/core_mco_driver.py index cc296da..f1cb9b4 100644 --- a/force_bdss/core_mco_driver.py +++ b/force_bdss/core_mco_driver.py @@ -13,7 +13,7 @@ class CoreMCODriver(BaseCoreDriver): workflow = self.application.workflow mco_data = workflow.multi_criteria_optimizer - mco_bundle = self._mco_bundle_by_name(mco_data.name) + mco_bundle = self._mco_bundle_by_id(mco_data.id) mco_model = mco_bundle.create_model(mco_data.model_data) mco = mco_bundle.create_optimizer(self.application, mco_model) 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 index b0a2e47..46b6951 100644 --- 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 @@ -9,7 +9,7 @@ from .csv_extractor_data_source import CSVExtractorDataSource @provides(IDataSourceBundle) class CSVExtractorBundle(HasStrictTraits): - name = String("csv_extractor") + id = String("enthought.csv_extractor") def create_model(self, model_data=None): if model_data is None: diff --git a/force_bdss/core_plugins/csv_extractor/csv_extractor_plugin.py b/force_bdss/core_plugins/csv_extractor/csv_extractor_plugin.py index 8f10341..2542045 100644 --- a/force_bdss/core_plugins/csv_extractor/csv_extractor_plugin.py +++ b/force_bdss/core_plugins/csv_extractor/csv_extractor_plugin.py @@ -7,7 +7,7 @@ from .csv_extractor.csv_extractor_bundle import CSVExtractorBundle class CSVExtractorPlugin(Plugin): - id = "force.bdss.data_sources.csv_extractor" + id = "force.bdss.plugins.enthought.csv_extractor" data_sources = List( IDataSourceBundle, diff --git a/force_bdss/core_plugins/test_kpi/kpi_adder/kpi_adder_bundle.py b/force_bdss/core_plugins/test_kpi/kpi_adder/kpi_adder_bundle.py index 336cb37..36fc9ac 100644 --- a/force_bdss/core_plugins/test_kpi/kpi_adder/kpi_adder_bundle.py +++ b/force_bdss/core_plugins/test_kpi/kpi_adder/kpi_adder_bundle.py @@ -9,7 +9,7 @@ from .kpi_adder_calculator import KPIAdderCalculator @provides(IKPICalculatorBundle) class KPIAdderBundle(HasStrictTraits): - name = String("kpi_adder") + id = String("enthought.kpi_adder") def create_model(self, model_data=None): if model_data is None: diff --git a/force_bdss/core_plugins/test_kpi/test_kpi_calculator_plugin.py b/force_bdss/core_plugins/test_kpi/test_kpi_calculator_plugin.py index 3be48fb..8e0d43a 100644 --- a/force_bdss/core_plugins/test_kpi/test_kpi_calculator_plugin.py +++ b/force_bdss/core_plugins/test_kpi/test_kpi_calculator_plugin.py @@ -8,7 +8,7 @@ from .kpi_adder.kpi_adder_bundle import KPIAdderBundle class TestKPICalculatorPlugin(Plugin): - id = "force.bdss.kpi_calculators.test_kpi_calculator_plugin" + id = "force.bdss.plugins.enthought.test_kpi_calculator_plugin" kpi_calculators = List( IKPICalculatorBundle, diff --git a/force_bdss/core_plugins/test_mco/dakota/dakota_bundle.py b/force_bdss/core_plugins/test_mco/dakota/dakota_bundle.py index 3d53474..7983245 100644 --- a/force_bdss/core_plugins/test_mco/dakota/dakota_bundle.py +++ b/force_bdss/core_plugins/test_mco/dakota/dakota_bundle.py @@ -12,7 +12,7 @@ from .dakota_optimizer import DakotaOptimizer @provides(IMultiCriteriaOptimizerBundle) class DakotaBundle(HasStrictTraits): - name = String("dakota") + id = String("enthought.dakota") def create_model(self, model_data=None): if model_data is None: diff --git a/force_bdss/core_plugins/test_mco/multi_criteria_optimizers_plugin.py b/force_bdss/core_plugins/test_mco/multi_criteria_optimizers_plugin.py index a71da01..9a4eb11 100644 --- a/force_bdss/core_plugins/test_mco/multi_criteria_optimizers_plugin.py +++ b/force_bdss/core_plugins/test_mco/multi_criteria_optimizers_plugin.py @@ -8,7 +8,7 @@ from .dakota.dakota_bundle import DakotaBundle class MultiCriteriaOptimizersPlugin(Plugin): - id = "force.bdss.mco.plugins.multi_criteria_optimizers_plugin" + id = "force.bdss.plugins.enthought.multi_criteria_optimizers_plugin" multi_criteria_optimizers = List( IMultiCriteriaOptimizerBundle, diff --git a/force_bdss/data_sources/i_data_source_bundle.py b/force_bdss/data_sources/i_data_source_bundle.py index 5db54c8..085b2ca 100644 --- a/force_bdss/data_sources/i_data_source_bundle.py +++ b/force_bdss/data_sources/i_data_source_bundle.py @@ -2,7 +2,7 @@ from traits.api import Interface, String class IDataSourceBundle(Interface): - name = String() + id = String() def create_data_source(self, application, model): pass diff --git a/force_bdss/kpi/i_kpi_calculator_bundle.py b/force_bdss/kpi/i_kpi_calculator_bundle.py index 42f780e..d4e8992 100644 --- a/force_bdss/kpi/i_kpi_calculator_bundle.py +++ b/force_bdss/kpi/i_kpi_calculator_bundle.py @@ -2,7 +2,7 @@ from traits.api import Interface, String class IKPICalculatorBundle(Interface): - name = String() + id = String() def create_kpi_calculator(self, application, model): pass diff --git a/force_bdss/mco/i_multi_criteria_optimizer_bundle.py b/force_bdss/mco/i_multi_criteria_optimizer_bundle.py index 69fe7a7..cb42229 100644 --- a/force_bdss/mco/i_multi_criteria_optimizer_bundle.py +++ b/force_bdss/mco/i_multi_criteria_optimizer_bundle.py @@ -2,7 +2,7 @@ from traits.api import Interface, String class IMultiCriteriaOptimizerBundle(Interface): - name = String() + id = String() def create_optimizer(self, application, model): pass diff --git a/force_bdss/tests/__init__.py b/force_bdss/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/force_bdss/workspecs/data_source.py b/force_bdss/workspecs/data_source.py index 944e41c..bad5752 100644 --- a/force_bdss/workspecs/data_source.py +++ b/force_bdss/workspecs/data_source.py @@ -1,15 +1,14 @@ -from traits.has_traits import HasStrictTraits -from traits.trait_types import String, Dict +from traits.api import HasStrictTraits, String, Dict class DataSource(HasStrictTraits): - name = String() + id = String() model_data = Dict() @classmethod def from_json(cls, json_data): self = cls( - name=json_data["name"], + id=json_data["id"], model_data=json_data["model_data"] ) diff --git a/force_bdss/workspecs/kpi_calculator.py b/force_bdss/workspecs/kpi_calculator.py index ec41bbf..b806625 100644 --- a/force_bdss/workspecs/kpi_calculator.py +++ b/force_bdss/workspecs/kpi_calculator.py @@ -1,15 +1,14 @@ -from traits.has_traits import HasStrictTraits -from traits.trait_types import String, Dict +from traits.api import HasStrictTraits, String, Dict class KPICalculator(HasStrictTraits): - name = String() + id = String() model_data = Dict() @classmethod def from_json(cls, json_data): self = cls( - name=json_data["name"], + id=json_data["id"], model_data=json_data["model_data"] ) diff --git a/force_bdss/workspecs/multi_criteria_optimizer.py b/force_bdss/workspecs/multi_criteria_optimizer.py index 72a2fa6..efa4bfd 100644 --- a/force_bdss/workspecs/multi_criteria_optimizer.py +++ b/force_bdss/workspecs/multi_criteria_optimizer.py @@ -2,13 +2,13 @@ from traits.api import HasStrictTraits, String, Dict class MultiCriteriaOptimizer(HasStrictTraits): - name = String() + id = String() model_data = Dict() @classmethod def from_json(cls, json_data): self = cls( - name=json_data["name"], + id=json_data["id"], model_data=json_data["model_data"] ) -- GitLab