diff --git a/force_bdss/core/base_factory.py b/force_bdss/core/base_factory.py index e8daa730591b65ebe6cc89398cc95e59d1cd50af..f69db3f1d97c1da7848c1a40bc7895ae51ef4226 100644 --- a/force_bdss/core/base_factory.py +++ b/force_bdss/core/base_factory.py @@ -1,5 +1,5 @@ from envisage.plugin import Plugin -from traits.api import HasStrictTraits, Str, Instance +from traits.api import HasStrictTraits, Str, Unicode, Instance from force_bdss.ids import factory_id @@ -12,6 +12,9 @@ class BaseFactory(HasStrictTraits): #: A human readable name of the factory. Spaces allowed name = Str() + #: A long description of the factory. + description = Unicode() + #: Reference to the plugin that carries this factory #: This is automatically set by the system. you should not define it #: in your subclass. @@ -21,6 +24,7 @@ class BaseFactory(HasStrictTraits): super(BaseFactory, self).__init__(plugin=plugin, *args, **kwargs) self.name = self.get_name() + self.description = self.get_description() identifier = self.get_identifier() try: id = self._global_id(identifier) @@ -51,5 +55,8 @@ class BaseFactory(HasStrictTraits): "get_identifier was not implemented in factory {}".format( self.__class__)) + def get_description(self): + return u"No description available." + def _global_id(self, identifier): return factory_id(self.plugin.id, identifier) diff --git a/force_bdss/data_sources/tests/test_base_data_source_factory.py b/force_bdss/data_sources/tests/test_base_data_source_factory.py index e2aa949db237b64a47a70e5ad4cd746a2642704a..8716ac78e4f0a246ae18b1f2a6d61666ca1a77b1 100644 --- a/force_bdss/data_sources/tests/test_base_data_source_factory.py +++ b/force_bdss/data_sources/tests/test_base_data_source_factory.py @@ -25,6 +25,7 @@ class TestBaseDataSourceFactory(unittest.TestCase): factory = DummyDataSourceFactory(self.plugin) self.assertEqual(factory.id, 'pid.factory.dummy_data_source') self.assertEqual(factory.name, 'Dummy data source') + self.assertEqual(factory.description, u"No description available.") self.assertEqual(factory.model_class, DummyDataSourceModel) self.assertEqual(factory.data_source_class, DummyDataSource) self.assertIsInstance(factory.create_data_source(), DummyDataSource) diff --git a/force_bdss/mco/parameters/base_mco_parameter_factory.py b/force_bdss/mco/parameters/base_mco_parameter_factory.py index bc3a0fd078c0001f12267f426a22e363231815fa..7dfb632296d7581ef13f17fbfa9c52987723c122 100644 --- a/force_bdss/mco/parameters/base_mco_parameter_factory.py +++ b/force_bdss/mco/parameters/base_mco_parameter_factory.py @@ -1,4 +1,4 @@ -from traits.api import Str, Type, Instance, provides +from traits.api import Type, Instance, provides, Unicode from force_bdss.core.base_factory import BaseFactory from force_bdss.ids import mco_parameter_id @@ -20,20 +20,12 @@ class BaseMCOParameterFactory(BaseFactory): mco_factory = Instance('force_bdss.mco.base_mco_factory.BaseMCOFactory', allow_none=False) - #: A long description of the parameter - description = Str() - # The model class to instantiate when create_model is called. model_class = Type( "force_bdss.mco.parameters.base_mco_parameter.BaseMCOParameter", allow_none=False ) - def get_description(self): - raise NotImplementedError( - "get_description was not implemented in factory {}".format( - self.__class__)) - def get_model_class(self): raise NotImplementedError( "get_model_class was not implemented in factory {}".format( @@ -46,7 +38,6 @@ class BaseMCOParameterFactory(BaseFactory): *args, **kwargs) - self.description = self.get_description() self.model_class = self.get_model_class() def create_model(self, data_values=None):