From bd18ce03575927551eaae89e9103b063fa15bc0e Mon Sep 17 00:00:00 2001 From: syntron Date: Tue, 10 Feb 2026 09:00:19 +0100 Subject: [PATCH] [ModelicaSystemCmd] do not reuse variable names (key/val) * level 1: key/val - inputs to arg_set() * level 2: okey/oval - loop over content of val if key=='override' * level 3: orkey/orval - used in sub-method override2str() --- OMPython/ModelicaSystem.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/OMPython/ModelicaSystem.py b/OMPython/ModelicaSystem.py index 03c24b51..3e47eeaf 100644 --- a/OMPython/ModelicaSystem.py +++ b/OMPython/ModelicaSystem.py @@ -130,31 +130,31 @@ def arg_set( """ def override2str( - okey: str, - oval: str | bool | numbers.Number, + orkey: str, + orval: str | bool | numbers.Number, ) -> str: """ Convert a value for 'override' to a string taking into account differences between Modelica and Python. """ # check oval for any string representations of numbers (or bool) and convert these to Python representations - if isinstance(oval, str): + if isinstance(orval, str): try: - oval_evaluated = ast.literal_eval(oval) - if isinstance(oval_evaluated, (numbers.Number, bool)): - oval = oval_evaluated + val_evaluated = ast.literal_eval(orval) + if isinstance(val_evaluated, (numbers.Number, bool)): + orval = val_evaluated except (ValueError, SyntaxError): pass - if isinstance(oval, str): - oval_str = oval.strip() - elif isinstance(oval, bool): - oval_str = 'true' if oval else 'false' - elif isinstance(oval, numbers.Number): - oval_str = str(oval) + if isinstance(orval, str): + val_str = orval.strip() + elif isinstance(orval, bool): + val_str = 'true' if orval else 'false' + elif isinstance(orval, numbers.Number): + val_str = str(orval) else: - raise ModelicaSystemError(f"Invalid value for override key {okey}: {type(oval)}") + raise ModelicaSystemError(f"Invalid value for override key {orkey}: {type(orval)}") - return f"{okey}={oval_str}" + return f"{orkey}={val_str}" if not isinstance(key, str): raise ModelicaSystemError(f"Invalid argument key: {repr(key)} (type: {type(key)})") @@ -183,7 +183,7 @@ def override2str( f"(was: {repr(self._arg_override[okey])})") if oval is not None: - self._arg_override[okey] = override2str(okey=okey, oval=oval) + self._arg_override[okey] = override2str(orkey=okey, orval=oval) argval = ','.join(sorted(self._arg_override.values())) elif val is None: