From 26088c9b4b0eb062a63b92607131b34353abec0a Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Thu, 13 Jul 2017 15:53:45 +0100 Subject: [PATCH] Renamed KPC to data sources --- examples/test_workflow.json | 2 +- force_bdss/cli/force_bdss.py | 6 ++-- force_bdss/core_mco_driver.py | 30 +++++++++---------- force_bdss/{kpi => data_sources}/__init__.py | 0 force_bdss/{kpi => data_sources}/basic.py | 6 ++-- .../data_sources/data_sources_plugin.py | 22 ++++++++++++++ .../i_data_source.py} | 2 +- force_bdss/{kpi => data_sources}/price.py | 6 ++-- force_bdss/{kpi => data_sources}/viscosity.py | 6 ++-- .../kpi/key_performance_calculators_plugin.py | 22 -------------- force_bdss/mco/i_multi_criteria_optimizers.py | 2 +- force_bdss/workspecs/workflow.py | 4 +-- 12 files changed, 54 insertions(+), 54 deletions(-) rename force_bdss/{kpi => data_sources}/__init__.py (100%) rename force_bdss/{kpi => data_sources}/basic.py (64%) create mode 100644 force_bdss/data_sources/data_sources_plugin.py rename force_bdss/{kpi/i_key_performance_calculator.py => data_sources/i_data_source.py} (69%) rename force_bdss/{kpi => data_sources}/price.py (59%) rename force_bdss/{kpi => data_sources}/viscosity.py (60%) delete mode 100644 force_bdss/kpi/key_performance_calculators_plugin.py diff --git a/examples/test_workflow.json b/examples/test_workflow.json index 1bbd366..f0fa936 100644 --- a/examples/test_workflow.json +++ b/examples/test_workflow.json @@ -2,7 +2,7 @@ "multi_criteria_optimization": { "name": "basic" }, - "key_performance_indicators": [ + "data_sources": [ "viscosity", "price" ] } diff --git a/force_bdss/cli/force_bdss.py b/force_bdss/cli/force_bdss.py index 37541e6..79a7920 100644 --- a/force_bdss/cli/force_bdss.py +++ b/force_bdss/cli/force_bdss.py @@ -3,8 +3,8 @@ from envisage.core_plugin import CorePlugin from force_bdss.bdss_application import BDSSApplication from force_bdss.core_mco_driver import CoreMCODriver -from force_bdss.kpi.key_performance_calculators_plugin import \ - KeyPerformanceCalculatorsPlugin +from force_bdss.data_sources.data_sources_plugin import \ + DataSourcesPlugin from force_bdss.mco.multi_criteria_optimizers_plugin import \ MultiCriteriaOptimizersPlugin @@ -17,7 +17,7 @@ def run(evaluate, workflow_filepath): plugins = [ CorePlugin(), CoreMCODriver(), - KeyPerformanceCalculatorsPlugin(), + DataSourcesPlugin(), MultiCriteriaOptimizersPlugin(), ] diff --git a/force_bdss/core_mco_driver.py b/force_bdss/core_mco_driver.py index a0409df..6bd610e 100644 --- a/force_bdss/core_mco_driver.py +++ b/force_bdss/core_mco_driver.py @@ -3,8 +3,8 @@ from envisage.plugin import Plugin from traits.has_traits import on_trait_change from traits.trait_types import List -from force_bdss.kpi.i_key_performance_calculator import ( - IKeyPerformanceCalculator) +from force_bdss.data_sources.i_data_source import ( + IDataSource) from force_bdss.mco.i_multi_criteria_optimizers import IMultiCriteriaOptimizer @@ -26,21 +26,21 @@ class CoreMCODriver(Plugin): #: A list of the available Key Performance Indicator calculators. #: It will be populated by plugins. - key_performance_calculators = ExtensionPoint( - List(IKeyPerformanceCalculator), - id='force_bdss.key_performance_calculators') + data_sources = ExtensionPoint( + List(IDataSource), + id='force_bdss.data_sources') @on_trait_change("application:started") def application_started(self): workflow = self.application.workflow if self.application.evaluate: - for kpi in workflow.key_performance_indicators: - kpc = self._find_kpc_by_computes(kpi) - if kpc: - kpc.run(self.application) + for requested_ds in workflow.data_sources: + data_source = self._find_data_source_by_computes(requested_ds) + if data_source: + data_source.run(self.application) else: - raise Exception("Requested KPI {} but don't know how" - "to compute it.".format(kpi)) + raise Exception("Requested sata source {} but don't know " + "to find it.".format(requested_ds)) else: mco_name = workflow.multi_criteria_optimization.name mco = self._find_mco_by_name(mco_name) @@ -50,10 +50,10 @@ class CoreMCODriver(Plugin): raise Exception("Requested MCO {} but it's not available" "to compute it.".format(mco_name)) - def _find_kpc_by_computes(self, computes): - for kpc in self.key_performance_calculators: - if kpc.computes == computes: - return kpc + def _find_data_source_by_computes(self, computes): + for ds in self.data_sources: + if ds.computes == computes: + return ds return None diff --git a/force_bdss/kpi/__init__.py b/force_bdss/data_sources/__init__.py similarity index 100% rename from force_bdss/kpi/__init__.py rename to force_bdss/data_sources/__init__.py diff --git a/force_bdss/kpi/basic.py b/force_bdss/data_sources/basic.py similarity index 64% rename from force_bdss/kpi/basic.py rename to force_bdss/data_sources/basic.py index 4e0d021..5fe2f3c 100644 --- a/force_bdss/kpi/basic.py +++ b/force_bdss/data_sources/basic.py @@ -1,10 +1,10 @@ from traits.api import provides, HasStrictTraits, String -from force_bdss.kpi.i_key_performance_calculator import ( - IKeyPerformanceCalculator) +from force_bdss.data_sources.i_data_source import ( + IDataSource) -@provides(IKeyPerformanceCalculator) +@provides(IDataSource) class Basic(HasStrictTraits): computes = String("basic") diff --git a/force_bdss/data_sources/data_sources_plugin.py b/force_bdss/data_sources/data_sources_plugin.py new file mode 100644 index 0000000..2bd94d8 --- /dev/null +++ b/force_bdss/data_sources/data_sources_plugin.py @@ -0,0 +1,22 @@ +from envisage.plugin import Plugin +from traits.api import List + +from force_bdss.data_sources.i_data_source import ( + IDataSource) + +from force_bdss.data_sources.basic import Basic +from force_bdss.data_sources.price import Price +from force_bdss.data_sources.viscosity import Viscosity + + +class DataSourcesPlugin(Plugin): + + id = "force_bdss.data_sources_plugin" + + data_sources = List( + IDataSource, + contributes_to='force_bdss.data_sources' + ) + + def _data_sources_default(self): + return [Basic(), Viscosity(), Price()] diff --git a/force_bdss/kpi/i_key_performance_calculator.py b/force_bdss/data_sources/i_data_source.py similarity index 69% rename from force_bdss/kpi/i_key_performance_calculator.py rename to force_bdss/data_sources/i_data_source.py index 56b7205..e86f0c7 100644 --- a/force_bdss/kpi/i_key_performance_calculator.py +++ b/force_bdss/data_sources/i_data_source.py @@ -1,7 +1,7 @@ from traits.api import Interface, String -class IKeyPerformanceCalculator(Interface): +class IDataSource(Interface): computes = String() def run(self): diff --git a/force_bdss/kpi/price.py b/force_bdss/data_sources/price.py similarity index 59% rename from force_bdss/kpi/price.py rename to force_bdss/data_sources/price.py index 7911254..30fbaf7 100644 --- a/force_bdss/kpi/price.py +++ b/force_bdss/data_sources/price.py @@ -1,10 +1,10 @@ from traits.api import provides, HasStrictTraits, String -from force_bdss.kpi.i_key_performance_calculator import ( - IKeyPerformanceCalculator) +from force_bdss.data_sources.i_data_source import ( + IDataSource) -@provides(IKeyPerformanceCalculator) +@provides(IDataSource) class Price(HasStrictTraits): computes = String("price") diff --git a/force_bdss/kpi/viscosity.py b/force_bdss/data_sources/viscosity.py similarity index 60% rename from force_bdss/kpi/viscosity.py rename to force_bdss/data_sources/viscosity.py index d8c3f3e..1c207f4 100644 --- a/force_bdss/kpi/viscosity.py +++ b/force_bdss/data_sources/viscosity.py @@ -1,10 +1,10 @@ from traits.api import provides, HasStrictTraits, String -from force_bdss.kpi.i_key_performance_calculator import ( - IKeyPerformanceCalculator) +from force_bdss.data_sources.i_data_source import ( + IDataSource) -@provides(IKeyPerformanceCalculator) +@provides(IDataSource) class Viscosity(HasStrictTraits): computes = String("viscosity") diff --git a/force_bdss/kpi/key_performance_calculators_plugin.py b/force_bdss/kpi/key_performance_calculators_plugin.py deleted file mode 100644 index 3a646d3..0000000 --- a/force_bdss/kpi/key_performance_calculators_plugin.py +++ /dev/null @@ -1,22 +0,0 @@ -from envisage.plugin import Plugin -from traits.api import List - -from force_bdss.kpi.i_key_performance_calculator import ( - IKeyPerformanceCalculator) - -from force_bdss.kpi.basic import Basic -from force_bdss.kpi.price import Price -from force_bdss.kpi.viscosity import Viscosity - - -class KeyPerformanceCalculatorsPlugin(Plugin): - - id = "force_bdss.key_performance_calculators_plugin" - - key_performance_calculators = List( - IKeyPerformanceCalculator, - contributes_to='force_bdss.key_performance_calculators' - ) - - def _key_performance_calculators_default(self): - return [Basic(), Viscosity(), Price()] diff --git a/force_bdss/mco/i_multi_criteria_optimizers.py b/force_bdss/mco/i_multi_criteria_optimizers.py index 93c6b25..9bb929a 100644 --- a/force_bdss/mco/i_multi_criteria_optimizers.py +++ b/force_bdss/mco/i_multi_criteria_optimizers.py @@ -1,4 +1,4 @@ -from traits.api import Interface, String +from traits.api import Interface, String, Instance class IMultiCriteriaOptimizer(Interface): diff --git a/force_bdss/workspecs/workflow.py b/force_bdss/workspecs/workflow.py index 934c778..871e9b7 100644 --- a/force_bdss/workspecs/workflow.py +++ b/force_bdss/workspecs/workflow.py @@ -6,7 +6,7 @@ from .multi_criteria_optimization import MultiCriteriaOptimization class Workflow(HasStrictTraits): name = String() multi_criteria_optimization = Instance(MultiCriteriaOptimization) - key_performance_indicators = List(String) + data_sources = List(String) @classmethod def from_json(cls, json_data): @@ -14,7 +14,7 @@ class Workflow(HasStrictTraits): multi_criteria_optimization=MultiCriteriaOptimization.from_json( json_data["multi_criteria_optimization"] ), - key_performance_indicators=json_data["key_performance_indicators"] + data_sources=json_data["data_sources"] ) return self -- GitLab