@@ -1022,27 +1022,37 @@ def setInputs(
10221022 raise ModelicaSystemError (f"Invalid data in input for { repr (key )} : { repr (val )} " )
10231023
10241024 val_evaluated = ast .literal_eval (val )
1025-
10261025 if isinstance (val_evaluated , (int , float )):
10271026 self ._inputs [key ] = [(float (self ._simulate_options ["startTime" ]), float (val )),
10281027 (float (self ._simulate_options ["stopTime" ]), float (val ))]
10291028 elif isinstance (val_evaluated , list ):
10301029 if not all (isinstance (item , tuple ) for item in val_evaluated ):
10311030 raise ModelicaSystemError ("Value for setInput() must be in tuple format; "
10321031 f"got { repr (val_evaluated )} " )
1033- if val_evaluated != sorted (val_evaluated , key = lambda x : x [0 ]):
1034- raise ModelicaSystemError ("Time value should be in increasing order; "
1035- f"got { repr (val_evaluated )} " )
10361032
1033+ val_evaluated_checked : list [tuple [float , float ]] = []
10371034 for item in val_evaluated :
1038- if item [0 ] < float (self ._simulate_options ["startTime" ]):
1039- raise ModelicaSystemError (f"Time value in { repr (item )} of { repr (val_evaluated )} is less "
1040- "than the simulation start time" )
10411035 if len (item ) != 2 :
10421036 raise ModelicaSystemError (f"Value { repr (item )} of { repr (val_evaluated )} "
10431037 "is in incorrect format!" )
10441038
1045- self ._inputs [key ] = val_evaluated
1039+ try :
1040+ val_evaluated_checked .append ((float (item [0 ]), float (item [1 ])))
1041+ except (ValueError , TypeError ) as exc :
1042+ raise ModelicaSystemError ("All elements of the input for setInput() should be convertible to "
1043+ "type Tuple[float, float] - "
1044+ f"found [{ repr (item [0 ])} , { repr (item [1 ])} ] with types "
1045+ f"[{ type (item [0 ])} , { type (item [1 ])} ]!" ) from exc
1046+
1047+ if item [0 ] < float (self ._simulate_options ["startTime" ]):
1048+ raise ModelicaSystemError (f"Time value in { repr (item )} of { repr (val_evaluated )} is less "
1049+ "than the simulation start time" )
1050+
1051+ if val_evaluated_checked != sorted (val_evaluated_checked , key = lambda x : x [0 ]):
1052+ raise ModelicaSystemError ("Time value should be in increasing order; "
1053+ f"got { repr (val_evaluated_checked )} " )
1054+
1055+ self ._inputs [key ] = val_evaluated_checked
10461056 else :
10471057 raise ModelicaSystemError (f"Data cannot be evaluated for { repr (key )} : { repr (val )} " )
10481058
0 commit comments