Skip to content
Snippets Groups Projects
base_mco_model.py 1.06 KiB
Newer Older
from traits.api import ABCHasStrictTraits, Instance, List
from force_bdss.core.kpi_specification import KPISpecification
from .parameters.base_mco_parameter import BaseMCOParameter
from .i_mco_factory import IMCOFactory
class BaseMCOModel(ABCHasStrictTraits):
    """Base class for the specific MCO models.
    This model will also provide, through traits/traitsui magic the View
    that will appear in the workflow manager UI.

    In your definition, your specific model must reimplement this class.
    #: A reference to the creating factory, so that we can
    #: retrieve it as the originating factory.
    factory = Instance(IMCOFactory,
                       visible=False,
                       transient=True)
Stefano Borini's avatar
Stefano Borini committed
    #: A list of the parameters for the MCO
    parameters = List(BaseMCOParameter, visible=False)
Stefano Borini's avatar
Stefano Borini committed
    #: A list of KPI specification objects and their objective.
    kpis = List(KPISpecification, visible=False)

    def __init__(self, factory, *args, **kwargs):
        self.factory = factory
        super(BaseMCOModel, self).__init__(*args, **kwargs)