From 250870c9b4832b712acd48907de409446ff6b870 Mon Sep 17 00:00:00 2001 From: syntron Date: Sat, 26 Jul 2025 15:20:49 +0200 Subject: [PATCH 1/3] [ModelicaSystem] do not use package csv background: if OMCPath will be used, it is not available --- OMPython/ModelicaSystem.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OMPython/ModelicaSystem.py b/OMPython/ModelicaSystem.py index ae480dde..63fe926f 100644 --- a/OMPython/ModelicaSystem.py +++ b/OMPython/ModelicaSystem.py @@ -33,7 +33,6 @@ """ import ast -import csv from dataclasses import dataclass import logging import numbers @@ -1421,9 +1420,10 @@ def _createCSVData(self, csvfile: Optional[pathlib.Path] = None) -> pathlib.Path if csvfile is None: csvfile = self._tempdir / f'{self._model_name}.csv' - with open(file=csvfile, mode="w", encoding="utf-8", newline="") as fh: - writer = csv.writer(fh) - writer.writerows(csv_rows) + # basic definition of a CSV file using csv_rows as input + csv_content = "\n".join([",".join(map(str, row)) for row in csv_rows]) + "\n" + + csvfile.write_text(csv_content) return csvfile From 66b9df31ae0df1db07b7c76729bbbf69cb2f076e Mon Sep 17 00:00:00 2001 From: syntron Date: Sat, 26 Jul 2025 15:22:22 +0200 Subject: [PATCH 2/3] [ModelicaSystem] create override file using pathlib.Path.write_text() background: open() is not available if OMCPath is used --- OMPython/ModelicaSystem.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/OMPython/ModelicaSystem.py b/OMPython/ModelicaSystem.py index 63fe926f..0ee51414 100644 --- a/OMPython/ModelicaSystem.py +++ b/OMPython/ModelicaSystem.py @@ -957,11 +957,9 @@ def simulate_cmd( if self._override_variables or self._simulate_options_override: tmpdict = self._override_variables.copy() tmpdict.update(self._simulate_options_override) - # write to override file - with open(file=overrideFile, mode="w", encoding="utf-8") as fh: - for key, value in tmpdict.items(): - fh.write(f"{key}={value}\n") + override_content = "\n".join([f"{key}={value}" for key, value in tmpdict.items()]) + "\n" + overrideFile.write_text(override_content) om_cmd.arg_set(key="overrideFile", val=overrideFile.as_posix()) if self._inputs: # if model has input quantities From a676435c441607bdace3e45da73654f19cd1a5dc Mon Sep 17 00:00:00 2001 From: syntron Date: Tue, 5 Aug 2025 19:29:24 +0200 Subject: [PATCH 3/3] [ModelicaSystem] update handling of override file * define file name based on result file name & Path * simplify code --- OMPython/ModelicaSystem.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/OMPython/ModelicaSystem.py b/OMPython/ModelicaSystem.py index 0ee51414..16fb4bd4 100644 --- a/OMPython/ModelicaSystem.py +++ b/OMPython/ModelicaSystem.py @@ -953,14 +953,17 @@ def simulate_cmd( if simargs: om_cmd.args_set(args=simargs) - overrideFile = self._tempdir / f"{self._model_name}_override.txt" if self._override_variables or self._simulate_options_override: - tmpdict = self._override_variables.copy() - tmpdict.update(self._simulate_options_override) + override_file = result_file.parent / f"{result_file.stem}_override.txt" - override_content = "\n".join([f"{key}={value}" for key, value in tmpdict.items()]) + "\n" - overrideFile.write_text(override_content) - om_cmd.arg_set(key="overrideFile", val=overrideFile.as_posix()) + override_content = ( + "\n".join([f"{key}={value}" for key, value in self._override_variables.items()]) + + "\n".join([f"{key}={value}" for key, value in self._simulate_options_override.items()]) + + "\n" + ) + + override_file.write_text(override_content) + om_cmd.arg_set(key="overrideFile", val=override_file.as_posix()) if self._inputs: # if model has input quantities for key in self._inputs: