Skip to content

Commit e775c5f

Browse files
committed
Moved libcosimc loading to _internal.py
1 parent dde23f1 commit e775c5f

File tree

10 files changed

+142
-89
lines changed

10 files changed

+142
-89
lines changed

src/libcosimpy/CosimAlgorithm.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
from dataclasses import dataclass
1212
from typing import Optional
1313

14-
from . import CosimLibrary
15-
from ._internal import wrap_function, get_last_error_message
14+
from ._internal import wrap_function, get_last_error_message, libcosimc
1615

1716
if typing.TYPE_CHECKING:
1817
from ctypes import _Pointer # pyright: ignore[reportPrivateUsage]
@@ -69,7 +68,7 @@ def __init__(
6968
)
7069

7170
self.__ecco_add_power_bond = wrap_function(
72-
lib=CosimLibrary.lib,
71+
lib=libcosimc(),
7372
funcname="cosim_ecco_add_power_bond",
7473
argtypes=[POINTER(CosimAlgorithm), c_int, c_uint32, c_uint32, c_int, c_uint32, c_uint32],
7574
restype=c_int,
@@ -78,7 +77,7 @@ def __init__(
7877
@classmethod
7978
def create_ecco_algorithm(cls, param: EccoParams) -> CosimAlgorithm:
8079
ecco_algorithm_create = wrap_function(
81-
lib=CosimLibrary.lib,
80+
lib=libcosimc(),
8281
funcname="cosim_ecco_algorithm_create",
8382
argtypes=[
8483
c_double,
@@ -156,7 +155,7 @@ def __del__(self):
156155
# Release object in C when object is removed (if pointer exists)
157156
if self.__ptr is not None:
158157
algorithm_destroy = wrap_function(
159-
lib=CosimLibrary.lib,
158+
lib=libcosimc(),
160159
funcname="cosim_algorithm_destroy",
161160
argtypes=[POINTER(CosimAlgorithm)],
162161
restype=c_int,

src/libcosimpy/CosimExecution.py

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
)
1414
from typing import Optional
1515

16-
from . import CosimConstants, CosimEnums, CosimLibrary, CosimManipulator, CosimObserver, CosimSlave
17-
from ._internal import wrap_function
16+
from . import CosimConstants, CosimEnums, CosimManipulator, CosimObserver, CosimSlave
17+
from ._internal import wrap_function, libcosimc
1818
from .CosimAlgorithm import CosimAlgorithm
1919

2020
if typing.TYPE_CHECKING:
@@ -57,55 +57,55 @@ def __init__(self, create_key: object = None, execution_ptr: Optional[CosimExecu
5757
self.__execution_status_ptr = pointer(self.execution_status)
5858

5959
self.__multiple_steps = wrap_function(
60-
lib=CosimLibrary.lib,
60+
lib=libcosimc(),
6161
funcname="cosim_execution_step",
6262
argtypes=[POINTER(CosimExecution), c_int64],
6363
restype=None,
6464
)
6565
self.__add_local_slave = wrap_function(
66-
lib=CosimLibrary.lib,
66+
lib=libcosimc(),
6767
funcname="cosim_execution_add_slave",
6868
argtypes=[POINTER(CosimExecution), POINTER(CosimSlave.CosimLocalSlave)],
6969
restype=c_int,
7070
)
7171
self.__simulate_until = wrap_function(
72-
lib=CosimLibrary.lib,
72+
lib=libcosimc(),
7373
funcname="cosim_execution_simulate_until",
7474
argtypes=[POINTER(CosimExecution), c_int64],
7575
restype=c_int,
7676
)
7777
self.__stop = wrap_function(
78-
lib=CosimLibrary.lib,
78+
lib=libcosimc(),
7979
funcname="cosim_execution_stop",
8080
argtypes=[POINTER(CosimExecution)],
8181
restype=c_int,
8282
)
8383
self.__enable_real_time_simulation = wrap_function(
84-
lib=CosimLibrary.lib,
84+
lib=libcosimc(),
8585
funcname="cosim_execution_enable_real_time_simulation",
8686
argtypes=[POINTER(CosimExecution)],
8787
restype=c_int,
8888
)
8989
self.__disable_real_time_simulation = wrap_function(
90-
lib=CosimLibrary.lib,
90+
lib=libcosimc(),
9191
funcname="cosim_execution_disable_real_time_simulation",
9292
argtypes=[POINTER(CosimExecution)],
9393
restype=c_int,
9494
)
9595
self.__real_time_factor_target = wrap_function(
96-
lib=CosimLibrary.lib,
96+
lib=libcosimc(),
9797
funcname="cosim_execution_set_real_time_factor_target",
9898
argtypes=[POINTER(CosimExecution), c_double],
9999
restype=c_int,
100100
)
101101
self.__steps_to_monitor = wrap_function(
102-
lib=CosimLibrary.lib,
102+
lib=libcosimc(),
103103
funcname="cosim_execution_set_steps_to_monitor",
104104
argtypes=[POINTER(CosimExecution), c_int],
105105
restype=c_int,
106106
)
107107
self.__add_manipulator = wrap_function(
108-
lib=CosimLibrary.lib,
108+
lib=libcosimc(),
109109
funcname="cosim_execution_add_manipulator",
110110
argtypes=[
111111
POINTER(CosimExecution),
@@ -114,31 +114,31 @@ def __init__(self, create_key: object = None, execution_ptr: Optional[CosimExecu
114114
restype=c_int,
115115
)
116116
self.__add_observer = wrap_function(
117-
lib=CosimLibrary.lib,
117+
lib=libcosimc(),
118118
funcname="cosim_execution_add_observer",
119119
argtypes=[POINTER(CosimExecution), POINTER(CosimObserver.CosimObserver)],
120120
restype=c_int,
121121
)
122122
self.__status = wrap_function(
123-
lib=CosimLibrary.lib,
123+
lib=libcosimc(),
124124
funcname="cosim_execution_get_status",
125125
argtypes=[POINTER(CosimExecution), POINTER(CosimExecutionStatus)],
126126
restype=c_int,
127127
)
128128
self.__slave_num_variables = wrap_function(
129-
lib=CosimLibrary.lib,
129+
lib=libcosimc(),
130130
funcname="cosim_slave_get_num_variables",
131131
argtypes=[POINTER(CosimExecution), c_int],
132132
restype=c_int,
133133
)
134134
self.__num_modified_variables = wrap_function(
135-
lib=CosimLibrary.lib,
135+
lib=libcosimc(),
136136
funcname="cosim_get_num_modified_variables",
137137
argtypes=[POINTER(CosimExecution)],
138138
restype=c_int,
139139
)
140140
self.__load_scenario = wrap_function(
141-
lib=CosimLibrary.lib,
141+
lib=libcosimc(),
142142
funcname="cosim_execution_load_scenario",
143143
argtypes=[
144144
POINTER(CosimExecution),
@@ -148,55 +148,55 @@ def __init__(self, create_key: object = None, execution_ptr: Optional[CosimExecu
148148
restype=c_int,
149149
)
150150
self.__real_initial = wrap_function(
151-
lib=CosimLibrary.lib,
151+
lib=libcosimc(),
152152
funcname="cosim_execution_set_real_initial_value",
153153
argtypes=[POINTER(CosimExecution), c_int, c_uint32, c_double],
154154
restype=c_int,
155155
)
156156
self.__integer_initial = wrap_function(
157-
lib=CosimLibrary.lib,
157+
lib=libcosimc(),
158158
funcname="cosim_execution_set_integer_initial_value",
159159
argtypes=[POINTER(CosimExecution), c_int, c_uint32, c_int],
160160
restype=c_int,
161161
)
162162

163163
self.__boolean_initial = wrap_function(
164-
lib=CosimLibrary.lib,
164+
lib=libcosimc(),
165165
funcname="cosim_execution_set_boolean_initial_value",
166166
argtypes=[POINTER(CosimExecution), c_int, c_uint32, c_bool],
167167
restype=c_int,
168168
)
169169

170170
self.__string_initial = wrap_function(
171-
lib=CosimLibrary.lib,
171+
lib=libcosimc(),
172172
funcname="cosim_execution_set_string_initial_value",
173173
argtypes=[POINTER(CosimExecution), c_int, c_uint32, c_char_p],
174174
restype=c_int,
175175
)
176176

177177
self.__connect_real_variables = wrap_function(
178-
lib=CosimLibrary.lib,
178+
lib=libcosimc(),
179179
funcname="cosim_execution_connect_real_variables",
180180
argtypes=[POINTER(CosimExecution), c_int, c_uint32, c_int, c_uint32],
181181
restype=c_int,
182182
)
183183

184184
self.__connect_int_variables = wrap_function(
185-
lib=CosimLibrary.lib,
185+
lib=libcosimc(),
186186
funcname="cosim_execution_connect_integer_variables",
187187
argtypes=[POINTER(CosimExecution), c_int, c_uint32, c_int, c_uint32],
188188
restype=c_int,
189189
)
190190

191191
self.__connect_string_variables = wrap_function(
192-
lib=CosimLibrary.lib,
192+
lib=libcosimc(),
193193
funcname="cosim_execution_connect_string_variables",
194194
argtypes=[POINTER(CosimExecution), c_int, c_uint32, c_int, c_uint32],
195195
restype=c_int,
196196
)
197197

198198
self.__connect_boolean_variables = wrap_function(
199-
lib=CosimLibrary.lib,
199+
lib=libcosimc(),
200200
funcname="cosim_execution_connect_boolean_variables",
201201
argtypes=[POINTER(CosimExecution), c_int, c_uint32, c_int, c_uint32],
202202
restype=c_int,
@@ -210,7 +210,7 @@ def from_algorithm(cls, algorithm: CosimAlgorithm):
210210
:return: CosimExecution object
211211
"""
212212
execution_create = wrap_function(
213-
lib=CosimLibrary.lib,
213+
lib=libcosimc(),
214214
funcname="cosim_execution_create_with_algorithm",
215215
argtypes=[c_int64, POINTER(CosimAlgorithm)],
216216
restype=POINTER(CosimExecution),
@@ -243,7 +243,7 @@ def from_step_size(cls, step_size: int | float):
243243
assert step_size > 0, "Step size must be a positive and non-zero integer"
244244

245245
execution_create = wrap_function(
246-
lib=CosimLibrary.lib,
246+
lib=libcosimc(),
247247
funcname="cosim_execution_create",
248248
argtypes=[c_int64, c_int64],
249249
restype=POINTER(CosimExecution),
@@ -260,7 +260,7 @@ def from_osp_config_file(cls, osp_path: str):
260260
:return: CosimExecution object
261261
"""
262262
osp_execution_create = wrap_function(
263-
lib=CosimLibrary.lib,
263+
lib=libcosimc(),
264264
funcname="cosim_osp_config_execution_create",
265265
argtypes=[c_char_p, c_bool, c_int64],
266266
restype=POINTER(CosimExecution),
@@ -288,7 +288,7 @@ def from_ssp_file(cls, ssp_path: str, step_size: Optional[int | float] = None):
288288
if step_size is None:
289289
# Create simulation without defined step size
290290
ssp_execution_create = wrap_function(
291-
lib=CosimLibrary.lib,
291+
lib=libcosimc(),
292292
funcname="cosim_ssp_execution_create",
293293
argtypes=[c_char_p, c_bool, c_int64],
294294
restype=POINTER(CosimExecution),
@@ -309,7 +309,7 @@ def from_ssp_file(cls, ssp_path: str, step_size: Optional[int | float] = None):
309309

310310
# Create simulation with defined step size
311311
ssp_fixed_step_execution_create = wrap_function(
312-
lib=CosimLibrary.lib,
312+
lib=libcosimc(),
313313
funcname="cosim_ssp_fixed_step_execution_create",
314314
argtypes=[c_char_p, c_bool, c_int64, c_int64],
315315
restype=POINTER(CosimExecution),
@@ -327,7 +327,7 @@ def num_slaves(self):
327327
:return: int Number of currently connected slaves
328328
"""
329329
execution_get_num_slaves = wrap_function(
330-
lib=CosimLibrary.lib,
330+
lib=libcosimc(),
331331
funcname="cosim_execution_get_num_slaves",
332332
argtypes=[POINTER(CosimExecution)],
333333
restype=c_int,
@@ -341,7 +341,7 @@ def start(self):
341341
:return: bool Successful start of execution
342342
"""
343343
execution_start = wrap_function(
344-
lib=CosimLibrary.lib,
344+
lib=libcosimc(),
345345
funcname="cosim_execution_start",
346346
argtypes=[POINTER(CosimExecution)],
347347
restype=c_int,
@@ -468,7 +468,7 @@ def slave_infos(self):
468468
slave_count = self.num_slaves()
469469
slave_infos_list = (CosimSlave.CosimSlaveInfo * slave_count)()
470470
slave_infos = wrap_function(
471-
lib=CosimLibrary.lib,
471+
lib=libcosimc(),
472472
funcname="cosim_execution_get_slave_infos",
473473
argtypes=[
474474
POINTER(CosimExecution),
@@ -521,7 +521,7 @@ def slave_variables(self, slave_index: int):
521521
slave_variables_count = self.num_slave_variables(slave_index)
522522
slave_variables_list = (CosimSlave.CosimSlaveVariableDescription * slave_variables_count)()
523523
slave_variables = wrap_function(
524-
lib=CosimLibrary.lib,
524+
lib=libcosimc(),
525525
funcname="cosim_slave_get_variables",
526526
argtypes=[
527527
POINTER(CosimExecution),
@@ -675,7 +675,7 @@ def __del__(self):
675675
# Release object in C when object is removed (if pointer exists)
676676
if self.__ptr is not None:
677677
execution_destroy = wrap_function(
678-
lib=CosimLibrary.lib,
678+
lib=libcosimc(),
679679
funcname="cosim_execution_destroy",
680680
argtypes=[POINTER(CosimExecution)],
681681
restype=c_int,

src/libcosimpy/CosimLibrary.py

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/libcosimpy/CosimLogging.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from ctypes import c_int
2-
from ._internal import wrap_function
3-
from . import CosimLibrary
2+
from ._internal import wrap_function, libcosimc
43

54
from enum import Enum
65

@@ -25,7 +24,7 @@ def log_output_level(log_level: CosimLogLevel):
2524
:param CosimLogLevel log_level:
2625
"""
2726
log_output_level_set = wrap_function(
28-
lib=CosimLibrary.lib,
27+
lib=libcosimc(),
2928
funcname="cosim_log_set_output_level",
3029
argtypes=[c_int],
3130
restype=None,

0 commit comments

Comments
 (0)