Skip to content

Commit 9581e13

Browse files
committed
rename [OMCSessionBase] => [OMCSessionCmd]; remove dependencies
1 parent 467cb6b commit 9581e13

3 files changed

Lines changed: 13 additions & 26 deletions

File tree

OMPython/ModelicaSystem.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
from dataclasses import dataclass
4747
from typing import Optional
4848

49-
from OMPython.OMCSession import OMCSessionBase, OMCSessionZMQ
49+
from OMPython.OMCSession import OMCSessionZMQ
5050

5151
# define logger using the current module name as ID
5252
logger = logging.getLogger(__name__)
@@ -119,7 +119,7 @@ def __init__(
119119
verbose: bool = True,
120120
raiseerrors: bool = False,
121121
omhome: Optional[str] = None,
122-
session: Optional[OMCSessionBase] = None
122+
session: Optional[OMCSessionZMQ] = None
123123
):
124124
"""Initialize, load and build a model.
125125

OMPython/OMCSession.py

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
Definition of an OMC session.
44
"""
55

6+
from __future__ import annotations
7+
68
__license__ = """
79
This file is part of OpenModelica.
810
@@ -33,7 +35,6 @@
3335
"""
3436

3537
import shutil
36-
import abc
3738
import getpass
3839
import logging
3940
import json
@@ -80,9 +81,12 @@ class OMCSessionException(Exception):
8081
pass
8182

8283

83-
class OMCSessionBase(metaclass=abc.ABCMeta):
84+
class OMCSessionCmd:
8485

85-
def __init__(self, readonly=False):
86+
def __init__(self, session: OMCSessionZMQ, readonly: Optional[bool] = False):
87+
if not isinstance(session, OMCSessionZMQ):
88+
raise OMCSessionException("Invalid session definition!")
89+
self._session = session
8690
self._readonly = readonly
8791
self._omc_cache = {}
8892

@@ -92,21 +96,6 @@ def execute(self, command):
9296

9397
return self.sendExpression(command, parsed=False)
9498

95-
@abc.abstractmethod
96-
def sendExpression(self, command, parsed=True):
97-
"""
98-
Sends an expression to the OpenModelica. The return type is parsed as if the
99-
expression was part of the typed OpenModelica API (see ModelicaBuiltin.mo).
100-
* Integer and Real are returned as Python numbers
101-
* Strings, enumerations, and typenames are returned as Python strings
102-
* Arrays, tuples, and MetaModelica lists are returned as tuples
103-
* Records are returned as dicts (the name of the record is lost)
104-
* Booleans are returned as True or False
105-
* NONE() is returned as None
106-
* SOME(value) is returned as value
107-
"""
108-
pass
109-
11099
def _ask(self, question: str, opt: Optional[list[str]] = None, parsed: Optional[bool] = True):
111100

112101
if opt is None:
@@ -126,7 +115,7 @@ def _ask(self, question: str, opt: Optional[list[str]] = None, parsed: Optional[
126115
logger.debug('OMC ask: %s (parsed=%s)', expression, parsed)
127116

128117
try:
129-
res = self.sendExpression(expression, parsed=parsed)
118+
res = self._session.sendExpression(expression, parsed=parsed)
130119
except OMCSessionException as ex:
131120
raise OMCSessionException("OMC _ask() failed: %s (parsed=%s)", expression, parsed) from ex
132121

@@ -282,16 +271,14 @@ def getClassNames(self, className=None, recursive=False, qualified=False, sort=F
282271
return value
283272

284273

285-
class OMCSessionZMQ(OMCSessionBase):
274+
class OMCSessionZMQ:
286275

287276
def __init__(self, readonly=False, timeout=10.00,
288277
docker=None, dockerContainer=None, dockerExtraArgs=None, dockerOpenModelicaPath="omc",
289278
dockerNetwork=None, port=None, omhome: str = None):
290279
if dockerExtraArgs is None:
291280
dockerExtraArgs = []
292281

293-
super().__init__(readonly=readonly)
294-
295282
self.omhome = self._get_omhome(omhome=omhome)
296283

297284
self._omc_process = None

OMPython/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
CONDITIONS OF OSMC-PL.
3737
"""
3838

39-
from OMPython.OMCSession import OMCSessionBase, OMCSessionZMQ, OMCSessionException
39+
from OMPython.OMCSession import OMCSessionCmd, OMCSessionZMQ, OMCSessionException
4040
from OMPython.ModelicaSystem import ModelicaSystem, ModelicaSystemError, LinearizationResult
4141

4242
# global names imported if import 'from OMPython import *' is used
@@ -47,5 +47,5 @@
4747

4848
'OMCSessionException',
4949
'OMCSessionZMQ',
50-
'OMCSessionBase',
50+
'OMCSessionCmd',
5151
]

0 commit comments

Comments
 (0)