Source code for capsul.engine.module.matlab

# -*- coding: utf-8 -*-
from __future__ import absolute_import

import capsul.engine
import os

#from soma.controller import Controller
#from traits.api import File, Undefined, Instance

    
def init_settings(capsul_engine):
    with capsul_engine.settings as settings:
        settings.ensure_module_fields('matlab',
        [dict(name='executable',
              type='string',
              description='Full path of the matlab executable'),
         ])


[docs]def check_configurations(): ''' Check if the activated configuration is valid for Matlab and return an error message if there is an error or None if everything is good. ''' matlab_executable = capsul.engine.configurations.get( 'capsul.engine.module.matlab', {}).get('executable') if not matlab_executable: return 'matlab.executable is not defined' if not os.path.exists(matlab_executable): return 'Matlab executable is defined as "%s" but this path does not exist' % matlab_executable return None
[docs]def edition_widget(engine, environment): ''' Edition GUI for matlab config - see :class:`~capsul.qt_gui.widgets.settings_editor.SettingsEditor` ''' from soma.qt_gui.controller_widget import ScrollControllerWidget from soma.controller import Controller import types import traits.api as traits def validate_config(widget): controller = widget.controller_widget.controller with widget.engine.settings as session: conf = session.config('matlab', widget.environment) values = {'config_id': 'matlab'} if controller.executable in (None, traits.Undefined, ''): values['executable'] = None else: values['executable'] = controller.executable if conf is None: session.new_config('matlab', widget.environment, values) else: for k in ('executable', ): setattr(conf, k, values[k]) controller = Controller() controller.add_trait('executable', traits.Str(desc='Full path of the matlab executable')) conf = engine.settings.select_configurations( environment, {'matlab': 'any'}) if conf: controller.executable = conf.get( 'capsul.engine.module.matlab', {}).get('executable', traits.Undefined) widget = ScrollControllerWidget(controller, live=True) widget.engine = engine widget.environment = environment widget.accept = types.MethodType(validate_config, widget) return widget