Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 60 additions & 63 deletions OMPython/ModelicaSystem.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()")

Expand Down Expand Up @@ -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()")
Expand Down Expand Up @@ -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()")
Expand Down Expand Up @@ -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()")

Expand Down Expand Up @@ -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()")
Expand Down Expand Up @@ -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()")
Expand Down Expand Up @@ -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()")
Expand Down
3 changes: 2 additions & 1 deletion OMPython/OMCSession.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down