Skip to content
Snippets Groups Projects
base_extension_plugin.py 1.42 KiB
Newer Older
Stefano Borini's avatar
Stefano Borini committed
from envisage.plugin import Plugin
from traits.trait_types import List

Stefano Borini's avatar
Stefano Borini committed
from .data_sources.i_data_source_bundle import IDataSourceBundle
from .kpi.i_kpi_calculator_bundle import IKPICalculatorBundle
from .mco.i_mco_bundle import IMCOBundle
Stefano Borini's avatar
Stefano Borini committed


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.
Stefano Borini's avatar
Stefano Borini committed
    mco_bundles = List(
        IMCOBundle,
        contributes_to=ExtensionPointID.MCO_BUNDLES
Stefano Borini's avatar
Stefano Borini committed
    )

    #: A list of the available Data Sources this plugin exports.
Stefano Borini's avatar
Stefano Borini committed
    data_source_bundles = List(
        IDataSourceBundle,
        contributes_to=ExtensionPointID.DATA_SOURCE_BUNDLES
Stefano Borini's avatar
Stefano Borini committed

    #: A list of the available KPI calculators this plugin exports.
Stefano Borini's avatar
Stefano Borini committed
    kpi_calculator_bundles = List(
        IKPICalculatorBundle,
        contributes_to=ExtensionPointID.KPI_CALCULATOR_BUNDLES
Stefano Borini's avatar
Stefano Borini committed
    )