Skip to content

Commit c44b088

Browse files
syntronadeas31
andauthored
[ModelicaSystem] add type hints for requestApi() and use kwargs for all calls (#340)
Co-authored-by: Adeel Asghar <adeel.asghar@liu.se>
1 parent 7616030 commit c44b088

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
@@ -431,7 +431,7 @@ def _loadLibrary(self, lmodel: list):
431431
apiCall = "loadFile"
432432
else:
433433
apiCall = "loadModel"
434-
self._requestApi(apiCall, element)
434+
self._requestApi(apiName=apiCall, entity=element)
435435
elif isinstance(element, tuple):
436436
if not element[1]:
437437
expr_load_lib = f"loadModel({element[0]})"
@@ -483,13 +483,13 @@ def buildModel(self, variableFilter: Optional[str] = None):
483483
else:
484484
varFilter = 'variableFilter=".*"'
485485

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

489489
xml_file = pathlib.Path(buildModelResult[0]).parent / buildModelResult[1]
490490
self._xmlparse(xml_file=xml_file)
491491

492-
def sendExpression(self, expr: str, parsed: bool = True):
492+
def sendExpression(self, expr: str, parsed: bool = True) -> Any:
493493
try:
494494
retval = self._getconn.sendExpression(expr, parsed)
495495
except OMCSessionException as ex:
@@ -500,7 +500,12 @@ def sendExpression(self, expr: str, parsed: bool = True):
500500
return retval
501501

502502
# request to OMC
503-
def _requestApi(self, apiName, entity=None, properties=None): # 2
503+
def _requestApi(
504+
self,
505+
apiName: str,
506+
entity: Optional[str] = None,
507+
properties: Optional[str] = None,
508+
) -> Any:
504509
if entity is not None and properties is not None:
505510
exp = f'{apiName}({entity}, {properties})'
506511
elif entity is not None and properties is None:
@@ -1475,8 +1480,9 @@ def convertMo2Fmu(self, version: str = "2.0", fmuType: str = "me_cs",
14751480
includeResourcesStr = "true"
14761481
else:
14771482
includeResourcesStr = "false"
1478-
properties = f'version="{version}", fmuType="{fmuType}", fileNamePrefix="{fileNamePrefix}", includeResources={includeResourcesStr}'
1479-
fmu = self._requestApi('buildModelFMU', self._model_name, properties)
1483+
properties = (f'version="{version}", fmuType="{fmuType}", '
1484+
f'fileNamePrefix="{fileNamePrefix}", includeResources={includeResourcesStr}')
1485+
fmu = self._requestApi(apiName='buildModelFMU', entity=self._model_name, properties=properties)
14801486

14811487
# report proper error message
14821488
if not os.path.exists(fmu):
@@ -1493,7 +1499,7 @@ def convertFmu2Mo(self, fmuName): # 20
14931499
>>> convertFmu2Mo("c:/BouncingBall.Fmu")
14941500
"""
14951501

1496-
fileName = self._requestApi('importFMU', fmuName)
1502+
fileName = self._requestApi(apiName='importFMU', entity=fmuName)
14971503

14981504
# report proper error message
14991505
if not os.path.exists(fileName):
@@ -1531,7 +1537,7 @@ def optimize(self) -> dict[str, Any]:
15311537
cName = self._model_name
15321538
properties = ','.join(f"{key}={val}" for key, val in self._optimization_options.items())
15331539
self.setCommandLineOptions("-g=Optimica")
1534-
optimizeResult = self._requestApi('optimize', cName, properties)
1540+
optimizeResult = self._requestApi(apiName='optimize', entity=cName, properties=properties)
15351541

15361542
return optimizeResult
15371543

0 commit comments

Comments
 (0)