Skip to content

Commit 1d045e0

Browse files
committed
[ModelicaSystem] add type hints for requestApi() and use kwargs for all calls
1 parent 3e9c55b commit 1d045e0

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

OMPython/ModelicaSystem.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ def _loadLibrary(self, lmodel: list):
435435
apiCall = "loadFile"
436436
else:
437437
apiCall = "loadModel"
438-
self._requestApi(apiCall, element)
438+
self._requestApi(apiName=apiCall, entity=element)
439439
elif isinstance(element, tuple):
440440
if not element[1]:
441441
expr_load_lib = f"loadModel({element[0]})"
@@ -478,13 +478,13 @@ def buildModel(self, variableFilter: Optional[str] = None):
478478
else:
479479
varFilter = 'variableFilter=".*"'
480480

481-
buildModelResult = self._requestApi("buildModel", self._model_name, properties=varFilter)
481+
buildModelResult = self._requestApi(apiName="buildModel", entity=self._model_name, properties=varFilter)
482482
logger.debug("OM model build result: %s", buildModelResult)
483483

484484
self._xml_file = pathlib.Path(buildModelResult[0]).parent / buildModelResult[1]
485485
self._xmlparse()
486486

487-
def sendExpression(self, expr: str, parsed: bool = True):
487+
def sendExpression(self, expr: str, parsed: bool = True) -> Any:
488488
try:
489489
retval = self._getconn.sendExpression(expr, parsed)
490490
except OMCSessionException as ex:
@@ -495,7 +495,12 @@ def sendExpression(self, expr: str, parsed: bool = True):
495495
return retval
496496

497497
# request to OMC
498-
def _requestApi(self, apiName, entity=None, properties=None): # 2
498+
def _requestApi(
499+
self,
500+
apiName: str,
501+
entity: Optional[str] = None,
502+
properties: Optional[str] = None,
503+
) -> Any:
499504
if entity is not None and properties is not None:
500505
exp = f'{apiName}({entity}, {properties})'
501506
elif entity is not None and properties is None:
@@ -1354,8 +1359,9 @@ def convertMo2Fmu(self, version: str = "2.0", fmuType: str = "me_cs",
13541359
includeResourcesStr = "true"
13551360
else:
13561361
includeResourcesStr = "false"
1357-
properties = f'version="{version}", fmuType="{fmuType}", fileNamePrefix="{fileNamePrefix}", includeResources={includeResourcesStr}'
1358-
fmu = self._requestApi('buildModelFMU', self._model_name, properties)
1362+
properties = (f'version="{version}", fmuType="{fmuType}", '
1363+
f'fileNamePrefix="{fileNamePrefix}", includeResources={includeResourcesStr}')
1364+
fmu = self._requestApi(apiName='buildModelFMU', entity=self._model_name, properties=properties)
13591365

13601366
# report proper error message
13611367
if not os.path.exists(fmu):
@@ -1372,7 +1378,7 @@ def convertFmu2Mo(self, fmuName): # 20
13721378
>>> convertFmu2Mo("c:/BouncingBall.Fmu")
13731379
"""
13741380

1375-
fileName = self._requestApi('importFMU', fmuName)
1381+
fileName = self._requestApi(apiName='importFMU', entity=fmuName)
13761382

13771383
# report proper error message
13781384
if not os.path.exists(fileName):
@@ -1410,7 +1416,7 @@ def optimize(self) -> dict[str, Any]:
14101416
cName = self._model_name
14111417
properties = ','.join(f"{key}={val}" for key, val in self._optimization_options.items())
14121418
self.setCommandLineOptions("-g=Optimica")
1413-
optimizeResult = self._requestApi('optimize', cName, properties)
1419+
optimizeResult = self._requestApi(apiName='optimize', entity=cName, properties=properties)
14141420

14151421
return optimizeResult
14161422

0 commit comments

Comments
 (0)