@@ -345,7 +345,7 @@ def __init__(
345345
346346 self ._quantities : list [dict [str , Any ]] = []
347347 self ._params : dict [str , str ] = {} # even numerical values are stored as str
348- self ._inputs : dict [str , list | None ] = {}
348+ self ._inputs : dict [str , list [ tuple [ float , float ]] ] = {}
349349 # _outputs values are str before simulate(), but they can be
350350 # np.float64 after simulate().
351351 self ._outputs : dict [str , Any ] = {}
@@ -354,8 +354,15 @@ def __init__(
354354 self ._simulate_options : dict [str , str ] = {}
355355 self ._override_variables : dict [str , str ] = {}
356356 self ._simulate_options_override : dict [str , str ] = {}
357- self ._linearization_options = {'startTime' : 0.0 , 'stopTime' : 1.0 , 'stepSize' : 0.002 , 'tolerance' : 1e-8 }
358- self ._optimization_options = self ._linearization_options | {'numberOfIntervals' : 500 }
357+ self ._linearization_options : dict [str , str | float ] = {
358+ 'startTime' : 0.0 ,
359+ 'stopTime' : 1.0 ,
360+ 'stepSize' : 0.002 ,
361+ 'tolerance' : 1e-8 ,
362+ }
363+ self ._optimization_options = self ._linearization_options | {
364+ 'numberOfIntervals' : 500 ,
365+ }
359366 self ._linearized_inputs : list [str ] = [] # linearization input list
360367 self ._linearized_outputs : list [str ] = [] # linearization output list
361368 self ._linearized_states : list [str ] = [] # linearization states list
@@ -695,7 +702,10 @@ def getQuantities(self, names: Optional[str | list[str]] = None) -> list[dict]:
695702
696703 raise ModelicaSystemError ("Unhandled input for getQuantities()" )
697704
698- def getContinuous (self , names : Optional [str | list [str ]] = None ):
705+ def getContinuous (
706+ self ,
707+ names : Optional [str | list [str ]] = None ,
708+ ) -> dict [str , str | numbers .Real ] | list [str | numbers .Real ]:
699709 """Get values of continuous signals.
700710
701711 If called before simulate(), the initial values are returned as
@@ -767,7 +777,10 @@ def getContinuous(self, names: Optional[str | list[str]] = None):
767777
768778 raise ModelicaSystemError ("Unhandled input for getContinous()" )
769779
770- def getParameters (self , names : Optional [str | list [str ]] = None ) -> dict [str , str ] | list [str ]: # 5
780+ def getParameters (
781+ self ,
782+ names : Optional [str | list [str ]] = None ,
783+ ) -> dict [str , str ] | list [str ]:
771784 """Get parameter values.
772785
773786 Args:
@@ -798,7 +811,10 @@ def getParameters(self, names: Optional[str | list[str]] = None) -> dict[str, st
798811
799812 raise ModelicaSystemError ("Unhandled input for getParameters()" )
800813
801- def getInputs (self , names : Optional [str | list [str ]] = None ) -> dict | list : # 6
814+ def getInputs (
815+ self ,
816+ names : Optional [str | list [str ]] = None ,
817+ ) -> dict [str , list [tuple [float , float ]]] | list [list [tuple [float , float ]]]:
802818 """Get values of input signals.
803819
804820 Args:
@@ -832,7 +848,10 @@ def getInputs(self, names: Optional[str | list[str]] = None) -> dict | list: #
832848
833849 raise ModelicaSystemError ("Unhandled input for getInputs()" )
834850
835- def getOutputs (self , names : Optional [str | list [str ]] = None ): # 7
851+ def getOutputs (
852+ self ,
853+ names : Optional [str | list [str ]] = None ,
854+ ) -> dict [str , str | numbers .Real ] | list [str | numbers .Real ]:
836855 """Get values of output signals.
837856
838857 If called before simulate(), the initial values are returned as
@@ -900,7 +919,10 @@ def getOutputs(self, names: Optional[str | list[str]] = None): # 7
900919
901920 raise ModelicaSystemError ("Unhandled input for getOutputs()" )
902921
903- def getSimulationOptions (self , names : Optional [str | list [str ]] = None ) -> dict [str , str ] | list [str ]:
922+ def getSimulationOptions (
923+ self ,
924+ names : Optional [str | list [str ]] = None ,
925+ ) -> dict [str , str ] | list [str ]:
904926 """Get simulation options such as stopTime and tolerance.
905927
906928 Args:
@@ -934,7 +956,10 @@ def getSimulationOptions(self, names: Optional[str | list[str]] = None) -> dict[
934956
935957 raise ModelicaSystemError ("Unhandled input for getSimulationOptions()" )
936958
937- def getLinearizationOptions (self , names : Optional [str | list [str ]] = None ) -> dict | list :
959+ def getLinearizationOptions (
960+ self ,
961+ names : Optional [str | list [str ]] = None ,
962+ ) -> dict [str , str | float ] | list [str | float ]:
938963 """Get simulation options used for linearization.
939964
940965 Args:
@@ -969,7 +994,10 @@ def getLinearizationOptions(self, names: Optional[str | list[str]] = None) -> di
969994
970995 raise ModelicaSystemError ("Unhandled input for getLinearizationOptions()" )
971996
972- def getOptimizationOptions (self , names : Optional [str | list [str ]] = None ) -> dict | list :
997+ def getOptimizationOptions (
998+ self ,
999+ names : Optional [str | list [str ]] = None ,
1000+ ) -> dict [str , str | float ] | list [str | float ]:
9731001 """Get simulation options used for optimization.
9741002
9751003 Args:
@@ -1084,7 +1112,7 @@ def simulate_cmd(
10841112
10851113 def simulate (
10861114 self ,
1087- resultfile : Optional [str ] = None ,
1115+ resultfile : Optional [str | os . PathLike ] = None ,
10881116 simflags : Optional [str ] = None ,
10891117 simargs : Optional [dict [str , Optional [str | dict [str , Any ] | numbers .Number ]]] = None ,
10901118 timeout : Optional [float ] = None ,
@@ -1783,9 +1811,9 @@ def linearize(
17831811 continue
17841812
17851813 target = body_part .targets [0 ].id # type: ignore
1786- value = ast .literal_eval (body_part .value )
1814+ value_ast = ast .literal_eval (body_part .value )
17871815
1788- linear_data [target ] = value
1816+ linear_data [target ] = value_ast
17891817 except (AttributeError , IndexError , ValueError , SyntaxError , TypeError ) as ex :
17901818 raise ModelicaSystemError (f"Error parsing linearization file { linear_file } !" ) from ex
17911819
0 commit comments