From 098f67e104d4d4f1787339e46c959652287e0279 Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Tue, 18 Jul 2017 12:08:25 +0100 Subject: [PATCH] Introduce Model base classes for enforcing interface and UI requirements --- .../csv_extractor/csv_extractor/csv_extractor_model.py | 6 ++++-- .../core_plugins/test_kpi/kpi_adder/kpi_adder_model.py | 6 ++++-- force_bdss/core_plugins/test_mco/dakota/dakota_model.py | 6 ++++-- force_bdss/data_sources/base_data_source_model.py | 8 ++++++++ force_bdss/kpi/base_kpi_calculator_model.py | 8 ++++++++ force_bdss/mco/base_mco_model.py | 8 ++++++++ 6 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 force_bdss/data_sources/base_data_source_model.py create mode 100644 force_bdss/kpi/base_kpi_calculator_model.py create mode 100644 force_bdss/mco/base_mco_model.py 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 index 220a64d..8732d1f 100644 --- 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 @@ -1,7 +1,9 @@ -from traits.api import HasStrictTraits, Int, String +from traits.api import Int, String +from force_bdss.data_sources.base_data_source_model import BaseDataSourceModel -class CSVExtractorModel(HasStrictTraits): + +class CSVExtractorModel(BaseDataSourceModel): filename = String() row = Int() column = Int() diff --git a/force_bdss/core_plugins/test_kpi/kpi_adder/kpi_adder_model.py b/force_bdss/core_plugins/test_kpi/kpi_adder/kpi_adder_model.py index 159f873..f343fdf 100644 --- a/force_bdss/core_plugins/test_kpi/kpi_adder/kpi_adder_model.py +++ b/force_bdss/core_plugins/test_kpi/kpi_adder/kpi_adder_model.py @@ -1,7 +1,9 @@ -from traits.api import HasStrictTraits, String +from traits.api import String +from force_bdss.kpi.base_kpi_calculator_model import BaseKPICalculatorModel -class KPIAdderModel(HasStrictTraits): + +class KPIAdderModel(BaseKPICalculatorModel): cuba_type_in = String() cuba_type_out = String() diff --git a/force_bdss/core_plugins/test_mco/dakota/dakota_model.py b/force_bdss/core_plugins/test_mco/dakota/dakota_model.py index fe7edcd..55b3794 100644 --- a/force_bdss/core_plugins/test_mco/dakota/dakota_model.py +++ b/force_bdss/core_plugins/test_mco/dakota/dakota_model.py @@ -1,7 +1,9 @@ -from traits.api import HasStrictTraits, List, String +from traits.api import List, String +from force_bdss.mco.base_mco_model import BaseMCOModel -class DakotaModel(HasStrictTraits): + +class DakotaModel(BaseMCOModel): value_types = List(String) @classmethod diff --git a/force_bdss/data_sources/base_data_source_model.py b/force_bdss/data_sources/base_data_source_model.py new file mode 100644 index 0000000..b349020 --- /dev/null +++ b/force_bdss/data_sources/base_data_source_model.py @@ -0,0 +1,8 @@ +import abc +import six + + +class BaseDataSourceModel(six.with_metaclass(abc.ABCMeta)): + @abc.abstractclassmethod + def from_json(self, model_data): + pass diff --git a/force_bdss/kpi/base_kpi_calculator_model.py b/force_bdss/kpi/base_kpi_calculator_model.py new file mode 100644 index 0000000..eaa289b --- /dev/null +++ b/force_bdss/kpi/base_kpi_calculator_model.py @@ -0,0 +1,8 @@ +import six +import abc + + +class BaseKPICalculatorModel(six.with_metaclass(abc.ABCMeta)): + @abc.abstractclassmethod + def from_json(self, model_data): + pass diff --git a/force_bdss/mco/base_mco_model.py b/force_bdss/mco/base_mco_model.py new file mode 100644 index 0000000..9c7b159 --- /dev/null +++ b/force_bdss/mco/base_mco_model.py @@ -0,0 +1,8 @@ +import abc +import six + + +class BaseMCOModel(six.with_metaclass(abc.ABCMeta)): + @abc.abstractclassmethod + def from_json(self, model_data): + pass -- GitLab