Skip to content

Commit 97c3e4b

Browse files
committed
(D006) small fixes in ModelicaSystem
[ModelicaSystemABC] reorder code in __init__() [ModelicaSystem*] linter fixes
1 parent 8361414 commit 97c3e4b

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

OMPython/ModelicaSystem.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -383,22 +383,21 @@ def __init__(
383383
self._linearized_outputs: list[str] = [] # linearization output list
384384
self._linearized_states: list[str] = [] # linearization states list
385385

386-
self._session = session
387-
388-
# get OpenModelica version
389-
version_str = self._session.get_version()
390-
self._version = self._parse_om_version(version=version_str)
391-
392386
self._simulated = False # True if the model has already been simulated
393387
self._result_file: Optional[OMPathABC] = None # for storing result file
394388

395-
self._work_dir: OMPathABC = self.setWorkDirectory(work_directory)
396-
397389
self._model_name: Optional[str] = None
398390
self._libraries: Optional[list[str | tuple[str, str]]] = None
399391
self._file_name: Optional[OMPathABC] = None
400392
self._variable_filter: Optional[str] = None
401393

394+
self._session = session
395+
# get OpenModelica version
396+
version_str = self._session.get_version()
397+
self._version = self._parse_om_version(version=version_str)
398+
399+
self._work_dir: OMPathABC = self.setWorkDirectory(work_directory)
400+
402401
def get_session(self) -> OMSessionABC:
403402
"""
404403
Return the OMC session used for this class.
@@ -468,6 +467,8 @@ def _xmlparse(self, xml_file: OMPathABC):
468467
xml_content = xml_file.read_text()
469468
tree = ET.ElementTree(ET.fromstring(xml_content))
470469
root = tree.getroot()
470+
if root is None:
471+
raise ModelicaSystemError(f"Cannot read XML file: {xml_file}")
471472
for attr in root.iter('DefaultExperiment'):
472473
for key in ("startTime", "stopTime", "stepSize", "tolerance",
473474
"solver", "outputFormat"):
@@ -1931,7 +1932,7 @@ def getSolutions(
19311932
self,
19321933
varList: Optional[str | list[str]] = None,
19331934
resultfile: Optional[str | os.PathLike] = None,
1934-
) -> tuple[str] | np.ndarray:
1935+
) -> tuple[str, ...] | np.ndarray:
19351936
"""Extract simulation results from a result data file.
19361937
19371938
Args:
@@ -1980,7 +1981,8 @@ def getSolutions(
19801981
result_vars = self.sendExpression(expr=f'readSimulationResultVars("{result_file.as_posix()}")')
19811982
self.sendExpression(expr="closeSimulationResultFile()")
19821983
if varList is None:
1983-
return result_vars
1984+
var_list = [str(var) for var in result_vars]
1985+
return tuple(var_list)
19841986

19851987
if isinstance(varList, str):
19861988
var_list_checked = [varList]
@@ -2060,6 +2062,8 @@ def convertFmu2Mo(
20602062
raise ModelicaSystemError(f"Missing FMU file: {fmu_path.as_posix()}")
20612063

20622064
filename = self._requestApi(apiName='importFMU', entity=fmu_path.as_posix())
2065+
if not isinstance(filename, str):
2066+
raise ModelicaSystemError(f"Invalid return value for the FMU filename: {filename}")
20632067
filepath = self.getWorkDirectory() / filename
20642068

20652069
# report proper error message
@@ -2102,7 +2106,9 @@ def optimize(self) -> dict[str, Any]:
21022106
"""
21032107
properties = ','.join(f"{key}={val}" for key, val in self._optimization_options.items())
21042108
self.set_command_line_options("-g=Optimica")
2105-
return self._requestApi(apiName='optimize', entity=self._model_name, properties=properties)
2109+
retval = self._requestApi(apiName='optimize', entity=self._model_name, properties=properties)
2110+
retval = cast(dict, retval)
2111+
return retval
21062112

21072113

21082114
class ModelicaSystem(ModelicaSystemOMC):

0 commit comments

Comments
 (0)