@@ -1015,27 +1015,37 @@ def setInputs(
10151015 raise ModelicaSystemError (f"Invalid data in input for { repr (key )} : { repr (val )} " )
10161016
10171017 val_evaluated = ast .literal_eval (val )
1018-
10191018 if isinstance (val_evaluated , (int , float )):
10201019 self ._inputs [key ] = [(float (self ._simulate_options ["startTime" ]), float (val )),
10211020 (float (self ._simulate_options ["stopTime" ]), float (val ))]
10221021 elif isinstance (val_evaluated , list ):
10231022 if not all ([isinstance (item , tuple ) for item in val_evaluated ]):
10241023 raise ModelicaSystemError ("Value for setInput() must be in tuple format; "
10251024 f"got { repr (val_evaluated )} " )
1026- if val_evaluated != sorted (val_evaluated , key = lambda x : x [0 ]):
1027- raise ModelicaSystemError ("Time value should be in increasing order; "
1028- f"got { repr (val_evaluated )} " )
10291025
1026+ val_evaluated_checked : list [tuple [float , float ]] = []
10301027 for item in val_evaluated :
1031- if item [0 ] < float (self ._simulate_options ["startTime" ]):
1032- raise ModelicaSystemError (f"Time value in { repr (item )} of { repr (val_evaluated )} is less "
1033- "than the simulation start time" )
10341028 if len (item ) != 2 :
10351029 raise ModelicaSystemError (f"Value { repr (item )} of { repr (val_evaluated )} "
10361030 "is in incorrect format!" )
10371031
1038- self ._inputs [key ] = val_evaluated
1032+ try :
1033+ val_evaluated_checked .append ((float (item [0 ]), float (item [1 ])))
1034+ except (ValueError , TypeError ) as exc :
1035+ raise ModelicaSystemError ("All elements of the input for setInput() should be convertible to "
1036+ "type Tuple[float, float] - "
1037+ f"found [{ repr (item [0 ])} , { repr (item [1 ])} ] with types "
1038+ f"[{ type (item [0 ])} , { type (item [1 ])} ]!" ) from exc
1039+
1040+ if item [0 ] < float (self ._simulate_options ["startTime" ]):
1041+ raise ModelicaSystemError (f"Time value in { repr (item )} of { repr (val_evaluated )} is less "
1042+ "than the simulation start time" )
1043+
1044+ if val_evaluated_checked != sorted (val_evaluated_checked , key = lambda x : x [0 ]):
1045+ raise ModelicaSystemError ("Time value should be in increasing order; "
1046+ f"got { repr (val_evaluated_checked )} " )
1047+
1048+ self ._inputs [key ] = val_evaluated_checked
10391049 else :
10401050 raise ModelicaSystemError (f"Data cannot be evaluated for { repr (key )} : { repr (val )} " )
10411051
0 commit comments