gemseo / wrappers / matlab

matlab_parser module

Definition of the Matlab parser.

Overview

This module contains the MatlabParser which enables to parse Matlab files in order to automatically detect inputs and outputs. This class is basically used through the MatlabDiscipline class in order to build a discipline based on the Matlab function.

class gemseo.wrappers.matlab.matlab_parser.MatlabParser(full_path=None)[source]

Bases: object

Parse Matlab file to identify inputs and outputs.

Examples

>>> # Parse the matlab function "fucntion.m"
>>> parser = MatlabParser("function.m")
>>> print(parser.inputs)
>>> print(parser.outputs)
Parameters

full_path (str | None) –

The path to the matlab file. If None, the user shall parse the file explicitly.

By default it is set to None.

Return type

None

parse(path)[source]

Parse a .m file in order to get inputs and outputs.

Parameters

path (str) – The path to the matlab file.

Raises

ValueError – Raised if the file is not a matlab function.

Return type

None

RE_ARGS = re.compile('\\((.*?)\\)')
RE_ENCRYPTED_FCT = re.compile('.*(\\\\.*)*\\.p\\b')
RE_FILE_FMT = re.compile('.*(\\\\.*)*\\.m\\b')
RE_FUNCTION = re.compile('=(.*?)\\(')
RE_OUTPUTS = re.compile('(\\[(.*?)\\])|(function( *?)(.*?)=)')
property directory: pathlib.Path

Return the directory of the function.

property function_name: str

Return the name of the function.

property inputs

Return the inputs.

property outputs

Return the outputs.