From 9ea7b19a1ec624beb91c5d1f5fe8e696319c9e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=9D=E9=BC=8E?= Date: Wed, 17 Dec 2025 14:08:51 +0800 Subject: [PATCH 1/3] Add missing newline between override variables and simulation options --- OMPython/ModelicaSystem.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/OMPython/ModelicaSystem.py b/OMPython/ModelicaSystem.py index 7acc372d..10bc0303 100644 --- a/OMPython/ModelicaSystem.py +++ b/OMPython/ModelicaSystem.py @@ -1066,11 +1066,10 @@ def simulate_cmd( if self._override_variables or 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 self._override_variables.items()]) - + "\n".join([f"{key}={value}" for key, value in self._simulate_options_override.items()]) - + "\n" - ) + override_content = "\n".join([ + "\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()) From 2ad8cf6918f9c5da1e4fac4711dd1b256aecb562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=9D=E9=BC=8E?= Date: Wed, 17 Dec 2025 14:13:24 +0800 Subject: [PATCH 2/3] Fix: Improve regex to handle escaped quotes in OMC error messages and possible negative id --- OMPython/OMCSession.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OMPython/OMCSession.py b/OMPython/OMCSession.py index 70fd644e..5444ab9d 100644 --- a/OMPython/OMCSession.py +++ b/OMPython/OMCSession.py @@ -903,10 +903,10 @@ def sendExpression(self, command: str, parsed: bool = True) -> Any: r"\s*lineEnd = (\d+),\n" r"\s*columnEnd = (\d+)\n" r"\s*end OpenModelica\.Scripting\.SourceInfo;,\n" - r"\s*message = \"(.*?)\",\n" # message + r"\s*message = \"(.*)\",\n" # message r"\s*kind = \.OpenModelica\.Scripting\.ErrorKind\.(.*?),\n" # kind r"\s*level = \.OpenModelica\.Scripting\.ErrorLevel\.(.*?),\n" # level - r"\s*id = (\d+)", # id + r"\s*id = (-?\d+)", # id flags=re.MULTILINE | re.DOTALL) # extract all ErrorMessage records From 82bf37990cc2f4a75db30b4d604844c36efceac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=9D=E9=BC=8E?= Date: Wed, 17 Dec 2025 21:34:59 +0800 Subject: [PATCH 3/3] Fix: remove extra empty lines in generated override files --- OMPython/ModelicaSystem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OMPython/ModelicaSystem.py b/OMPython/ModelicaSystem.py index 10bc0303..39d4dbe7 100644 --- a/OMPython/ModelicaSystem.py +++ b/OMPython/ModelicaSystem.py @@ -1069,7 +1069,7 @@ def simulate_cmd( override_content = "\n".join([ "\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" + ]).strip() + "\n" override_file.write_text(override_content) om_cmd.arg_set(key="overrideFile", val=override_file.as_posix())