Skip to content
Snippets Groups Projects
Commit 963115b1 authored by martinRenou's avatar martinRenou
Browse files

Merge branch 'master' into add_file_version

parents 9b67d1cb c3329248
No related branches found
No related tags found
1 merge request!27Add file version handling for workflow file.
from envisage.plugin import Plugin
from traits.trait_types import List
from force_bdss.data_sources.i_data_source_bundle import IDataSourceBundle
from force_bdss.kpi.i_kpi_calculator_bundle import IKPICalculatorBundle
from force_bdss.mco.i_multi_criteria_optimizer_bundle import \
IMultiCriteriaOptimizerBundle
class BaseExtensionPlugin(Plugin):
"""Base class for extension plugins, that is, plugins that are
provided by external contributors.
It provides a set of slots to be populated that end up contributing
to the application extension points. To use the class, simply inherit it
in your plugin, and then define the trait default initializer for the
specific trait you want to populate. For example::
class MyPlugin(BaseExtensionPlugin):
def _data_source_bundles(self):
return [MyDataSourceBundle1(),
MyDataSourceBundle2()]
"""
#: A list of available Multi Criteria Optimizers this plugin exports.
mco_bundles = List(
IMultiCriteriaOptimizerBundle,
contributes_to='force.bdss.mco.bundles'
)
#: A list of the available Data Sources this plugin exports.
data_source_bundles = List(
IDataSourceBundle,
contributes_to='force.bdss.data_sources.bundles'
)
#: A list of the available KPI calculators this plugin exports.
kpi_calculator_bundles = List(
IKPICalculatorBundle,
contributes_to='force.bdss.kpi_calculators.bundles'
)
from envisage.plugin import Plugin from force_bdss.base_extension_plugin import BaseExtensionPlugin
from traits.api import List
from force_bdss.data_sources.i_data_source_bundle import IDataSourceBundle
from .csv_extractor.csv_extractor_bundle import CSVExtractorBundle from .csv_extractor.csv_extractor_bundle import CSVExtractorBundle
class CSVExtractorPlugin(Plugin): class CSVExtractorPlugin(BaseExtensionPlugin):
data_sources = List( def _data_source_bundles_default(self):
IDataSourceBundle,
contributes_to='force.bdss.data_sources.bundles'
)
def _data_sources_default(self):
return [CSVExtractorBundle()] return [CSVExtractorBundle()]
from envisage.plugin import Plugin from force_bdss.base_extension_plugin import BaseExtensionPlugin
from traits.api import List
from force_bdss.kpi.i_kpi_calculator_bundle import (
IKPICalculatorBundle)
from .kpi_adder.kpi_adder_bundle import KPIAdderBundle from .kpi_adder.kpi_adder_bundle import KPIAdderBundle
class TestKPICalculatorPlugin(Plugin): class TestKPICalculatorPlugin(BaseExtensionPlugin):
kpi_calculators = List( def _kpi_calculator_bundles_default(self):
IKPICalculatorBundle,
contributes_to='force.bdss.kpi_calculators.bundles'
)
def _kpi_calculators_default(self):
return [KPIAdderBundle()] return [KPIAdderBundle()]
from envisage.plugin import Plugin from force_bdss.base_extension_plugin import BaseExtensionPlugin
from traits.api import List
from force_bdss.mco.i_multi_criteria_optimizer_bundle import (
IMultiCriteriaOptimizerBundle)
from .dakota.dakota_bundle import DakotaBundle from .dakota.dakota_bundle import DakotaBundle
class MultiCriteriaOptimizersPlugin(Plugin): class MultiCriteriaOptimizersPlugin(BaseExtensionPlugin):
multi_criteria_optimizers = List( def _mco_bundles_default(self):
IMultiCriteriaOptimizerBundle,
contributes_to='force.bdss.mco.bundles'
)
def _multi_criteria_optimizers_default(self):
return [DakotaBundle()] return [DakotaBundle()]
import unittest import unittest
from force_bdss.base_extension_plugin import (
BaseExtensionPlugin)
from force_bdss.id_generators import bundle_id from force_bdss.id_generators import bundle_id
try: try:
...@@ -7,9 +9,7 @@ try: ...@@ -7,9 +9,7 @@ try:
except ImportError: except ImportError:
from unittest import mock from unittest import mock
from traits.api import List
from envisage.application import Application from envisage.application import Application
from envisage.plugin import Plugin
from force_bdss.bundle_registry_plugin import BundleRegistryPlugin from force_bdss.bundle_registry_plugin import BundleRegistryPlugin
from force_bdss.data_sources.i_data_source_bundle import IDataSourceBundle from force_bdss.data_sources.i_data_source_bundle import IDataSourceBundle
...@@ -31,25 +31,7 @@ class TestBundleRegistry(unittest.TestCase): ...@@ -31,25 +31,7 @@ class TestBundleRegistry(unittest.TestCase):
self.assertEqual(self.plugin.kpi_calculator_bundles, []) self.assertEqual(self.plugin.kpi_calculator_bundles, [])
class BaseBDSSPlugin(Plugin): class MySuperPlugin(BaseExtensionPlugin):
mco_bundles = List(
IMultiCriteriaOptimizerBundle,
contributes_to='force.bdss.mco.bundles'
)
#: A list of the available Data Sources.
#: It will be populated by plugins.
data_source_bundles = List(
IDataSourceBundle,
contributes_to='force.bdss.data_sources.bundles')
kpi_calculator_bundles = List(
IKPICalculatorBundle,
contributes_to='force.bdss.kpi_calculators.bundles'
)
class MySuperPlugin(BaseBDSSPlugin):
def _mco_bundles_default(self): def _mco_bundles_default(self):
return [mock.Mock(spec=IMultiCriteriaOptimizerBundle, return [mock.Mock(spec=IMultiCriteriaOptimizerBundle,
id=bundle_id("enthought", "mco1"))] id=bundle_id("enthought", "mco1"))]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment