diff --git a/OMPython/ModelicaSystem.py b/OMPython/ModelicaSystem.py index 8d6684df..e4bb3c30 100644 --- a/OMPython/ModelicaSystem.py +++ b/OMPython/ModelicaSystem.py @@ -731,40 +731,37 @@ def getContinuous(self, names: Optional[str | list[str]] = None): if not self._simulated: if names is None: return self._continuous - if isinstance(names, str): return [self._continuous[names]] - if isinstance(names, list): return [self._continuous[x] for x in names] - else: - if names is None: - for i in self._continuous: - try: - value = self.getSolutions(i) - self._continuous[i] = value[0][-1] - except (OMCSessionException, ModelicaSystemError) as ex: - raise ModelicaSystemError(f"{i} could not be computed") from ex - return self._continuous - if isinstance(names, str): - if names in self._continuous: - value = self.getSolutions(names) - self._continuous[names] = value[0][-1] - return [self._continuous[names]] - else: - raise ModelicaSystemError(f"{names} is not continuous") + if names is None: + for name in self._continuous: + try: + value = self.getSolutions(name) + self._continuous[name] = value[0][-1] + except (OMCSessionException, ModelicaSystemError) as ex: + raise ModelicaSystemError(f"{name} could not be computed") from ex + return self._continuous - if isinstance(names, list): - valuelist = [] - for i in names: - if i in self._continuous: - value = self.getSolutions(i) - self._continuous[i] = value[0][-1] - valuelist.append(value[0][-1]) - else: - raise ModelicaSystemError(f"{i} is not continuous") - return valuelist + if isinstance(names, str): + if names in self._continuous: + value = self.getSolutions(names) + self._continuous[names] = value[0][-1] + return [self._continuous[names]] + raise ModelicaSystemError(f"{names} is not continuous") + + if isinstance(names, list): + valuelist = [] + for name in names: + if name in self._continuous: + value = self.getSolutions(name) + self._continuous[name] = value[0][-1] + valuelist.append(value[0][-1]) + else: + raise ModelicaSystemError(f"{name} is not continuous") + return valuelist raise ModelicaSystemError("Unhandled input for getContinous()") @@ -792,9 +789,9 @@ def getParameters(self, names: Optional[str | list[str]] = None) -> dict[str, st """ if names is None: return self._params - elif isinstance(names, str): + if isinstance(names, str): return [self._params[names]] - elif isinstance(names, list): + if isinstance(names, list): return [self._params[x] for x in names] raise ModelicaSystemError("Unhandled input for getParameters()") @@ -826,9 +823,9 @@ def getInputs(self, names: Optional[str | list[str]] = None) -> dict | list: # """ if names is None: return self._inputs - elif isinstance(names, str): + if isinstance(names, str): return [self._inputs[names]] - elif isinstance(names, list): + if isinstance(names, list): return [self._inputs[x] for x in names] raise ModelicaSystemError("Unhandled input for getInputs()") @@ -871,33 +868,33 @@ def getOutputs(self, names: Optional[str | list[str]] = None): # 7 if not self._simulated: if names is None: return self._outputs - elif isinstance(names, str): + if isinstance(names, str): return [self._outputs[names]] - else: - return [self._outputs[x] for x in names] - else: - if names is None: - for i in self._outputs: - value = self.getSolutions(i) - self._outputs[i] = value[0][-1] - return self._outputs - elif isinstance(names, str): - if names in self._outputs: - value = self.getSolutions(names) - self._outputs[names] = value[0][-1] - return [self._outputs[names]] + return [self._outputs[x] for x in names] + + if names is None: + for name in self._outputs: + value = self.getSolutions(name) + self._outputs[name] = value[0][-1] + return self._outputs + + if isinstance(names, str): + if names in self._outputs: + value = self.getSolutions(names) + self._outputs[names] = value[0][-1] + return [self._outputs[names]] + raise KeyError(names) + + if isinstance(names, list): + valuelist = [] + for name in names: + if name in self._outputs: + value = self.getSolutions(name) + self._outputs[name] = value[0][-1] + valuelist.append(value[0][-1]) else: - raise KeyError(names) - elif isinstance(names, list): - valuelist = [] - for i in names: - if i in self._outputs: - value = self.getSolutions(i) - self._outputs[i] = value[0][-1] - valuelist.append(value[0][-1]) - else: - raise KeyError(i) - return valuelist + raise KeyError(name) + return valuelist raise ModelicaSystemError("Unhandled input for getOutputs()") @@ -927,9 +924,9 @@ def getSimulationOptions(self, names: Optional[str | list[str]] = None) -> dict[ """ if names is None: return self._simulate_options - elif isinstance(names, str): + if isinstance(names, str): return [self._simulate_options[names]] - elif isinstance(names, list): + if isinstance(names, list): return [self._simulate_options[x] for x in names] raise ModelicaSystemError("Unhandled input for getSimulationOptions()") @@ -962,9 +959,9 @@ def getLinearizationOptions(self, names: Optional[str | list[str]] = None) -> di """ if names is None: return self._linearization_options - elif isinstance(names, str): + if isinstance(names, str): return [self._linearization_options[names]] - elif isinstance(names, list): + if isinstance(names, list): return [self._linearization_options[x] for x in names] raise ModelicaSystemError("Unhandled input for getLinearizationOptions()") @@ -997,9 +994,9 @@ def getOptimizationOptions(self, names: Optional[str | list[str]] = None) -> dic """ if names is None: return self._optimization_options - elif isinstance(names, str): + if isinstance(names, str): return [self._optimization_options[names]] - elif isinstance(names, list): + if isinstance(names, list): return [self._optimization_options[x] for x in names] raise ModelicaSystemError("Unhandled input for getOptimizationOptions()") diff --git a/OMPython/OMCSession.py b/OMPython/OMCSession.py index b238903e..47e2fd74 100644 --- a/OMPython/OMCSession.py +++ b/OMPython/OMCSession.py @@ -639,7 +639,8 @@ def sendExpression(self, command: str, parsed: bool = True) -> Any: # see: https://build.openmodelica.org/Documentation/OpenModelica.Scripting.ErrorLevel.html if log_level == 'error': raise OMCSessionException(msg) - elif log_level == 'warning': + + if log_level == 'warning': logger.warning(msg) elif log_level == 'notification': logger.info(msg)