@@ -309,12 +309,12 @@ class ModelicaSystem:
309309
310310 def __init__ (
311311 self ,
312- fileName : Optional [str | os .PathLike | pathlib .Path ] = None ,
312+ fileName : Optional [str | os .PathLike | pathlib .Path | OMCPath ] = None ,
313313 modelName : Optional [str ] = None ,
314314 lmodel : Optional [list [str | tuple [str , str ]]] = None ,
315315 commandLineOptions : Optional [str ] = None ,
316316 variableFilter : Optional [str ] = None ,
317- customBuildDirectory : Optional [str | os .PathLike | pathlib .Path ] = None ,
317+ customBuildDirectory : Optional [str | os .PathLike | pathlib .Path | OMCPath ] = None ,
318318 omhome : Optional [str ] = None ,
319319 omc_process : Optional [OMCProcessLocal ] = None ,
320320 build : bool = True ,
@@ -396,7 +396,11 @@ def __init__(
396396
397397 self ._lmodel = lmodel # may be needed if model is derived from other model
398398 self ._model_name = modelName # Model class name
399- self ._file_name : Optional [OMCPath ] = self ._getconn .omcpath (fileName ).resolve () if fileName is not None else None # Model file/package name
399+ if fileName is not None :
400+ file_name = self ._getconn .omcpath (fileName ).resolve ()
401+ else :
402+ file_name = None
403+ self ._file_name : Optional [OMCPath ] = file_name # Model file/package name
400404 self ._simulated = False # True if the model has already been simulated
401405 self ._result_file : Optional [OMCPath ] = None # for storing result file
402406 self ._variable_filter = variableFilter
@@ -460,16 +464,20 @@ def _loadLibrary(self, lmodel: list):
460464
461465 def _set_work_directory (
462466 self ,
463- customBuildDirectory : Optional [str | os .PathLike | pathlib .Path ] = None ,
467+ customBuildDirectory : Optional [str | os .PathLike | pathlib .Path | OMCPath ] = None ,
464468 ) -> OMCPath :
465469 """
466470 Define a temporary directory to use.
467471 """
468472 # create a unique temp directory for each session and build the model in that directory
469473 if customBuildDirectory is not None :
470- if not os .path .exists (customBuildDirectory ):
474+ if os .path .exists (customBuildDirectory ):
475+ tempdir = self ._getconn .omcpath (customBuildDirectory ).absolute ()
476+ elif isinstance (customBuildDirectory , OMCPath ):
477+ tempdir = customBuildDirectory
478+
479+ if not tempdir .is_dir ():
471480 raise IOError (f"{ customBuildDirectory } does not exist" )
472- tempdir = self ._getconn .omcpath (customBuildDirectory ).absolute ()
473481 else :
474482 tempdir = self ._getconn .omcpath_tempdir ().absolute ()
475483 if not tempdir .is_dir ():
@@ -1025,7 +1033,7 @@ def simulate_cmd(
10251033
10261034 def simulate (
10271035 self ,
1028- resultfile : Optional [str ] = None ,
1036+ resultfile : Optional [str | pathlib . Path | OMCPath ] = None ,
10291037 simflags : Optional [str ] = None ,
10301038 simargs : Optional [dict [str , Optional [str | dict [str , str ]]]] = None ,
10311039 timeout : Optional [float ] = None ,
@@ -1051,10 +1059,12 @@ def simulate(
10511059 if resultfile is None :
10521060 # default result file generated by OM
10531061 self ._result_file = self .getWorkDirectory () / f"{ self ._model_name } _res.mat"
1054- elif os . path . exists (resultfile ):
1055- self ._result_file = self . _getconn . omcpath ( resultfile )
1062+ elif isinstance (resultfile , OMCPath ):
1063+ self ._result_file = resultfile
10561064 else :
1057- self ._result_file = self .getWorkDirectory () / resultfile
1065+ self ._result_file = self ._getconn .omcpath (resultfile )
1066+ if not self ._result_file .is_absolute ():
1067+ self ._result_file = self .getWorkDirectory () / resultfile
10581068
10591069 if not isinstance (self ._result_file , OMCPath ):
10601070 raise ModelicaSystemError (f"Invalid result file path: { self ._result_file } - must be an OMCPath object!" )
@@ -1087,7 +1097,7 @@ def simulate(
10871097 def getSolutions (
10881098 self ,
10891099 varList : Optional [str | list [str ]] = None ,
1090- resultfile : Optional [str | pathlib .Path ] = None ,
1100+ resultfile : Optional [str | pathlib .Path | OMCPath ] = None ,
10911101 ) -> tuple [str ] | np .ndarray :
10921102 """Extract simulation results from a result data file.
10931103
0 commit comments