pythonfmu3 0.3.2__py3-none-any.whl → 0.3.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pythonfmu3/_version.py +1 -1
- pythonfmu3/builder.py +29 -7
- pythonfmu3/fmi3slave.py +77 -30
- pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_cs.cpp +20 -10
- pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_cs.hpp +20 -10
- pythonfmu3/pythonfmu-export/src/cppfmu/fmi_functions.cpp +10 -10
- pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.cpp +40 -29
- pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.hpp +10 -10
- pythonfmu3/resources/binaries/x86_64-linux/libpythonfmu-export.so +0 -0
- pythonfmu3/resources/binaries/x86_64-windows/pythonfmu-export.dll +0 -0
- pythonfmu3/tests/slaves/pythonslave_arraytypes.py +80 -0
- pythonfmu3/tests/test_docs.py +98 -0
- pythonfmu3/tests/test_integration.py +106 -0
- pythonfmu3/variables.py +68 -44
- {pythonfmu3-0.3.2.dist-info → pythonfmu3-0.3.4.dist-info}/METADATA +2 -1
- {pythonfmu3-0.3.2.dist-info → pythonfmu3-0.3.4.dist-info}/RECORD +20 -18
- {pythonfmu3-0.3.2.dist-info → pythonfmu3-0.3.4.dist-info}/WHEEL +0 -0
- {pythonfmu3-0.3.2.dist-info → pythonfmu3-0.3.4.dist-info}/entry_points.txt +0 -0
- {pythonfmu3-0.3.2.dist-info → pythonfmu3-0.3.4.dist-info}/licenses/LICENSE +0 -0
- {pythonfmu3-0.3.2.dist-info → pythonfmu3-0.3.4.dist-info}/top_level.txt +0 -0
pythonfmu3/variables.py
CHANGED
|
@@ -50,6 +50,11 @@ class ModelVariable(ABC):
|
|
|
50
50
|
self.setter = setter
|
|
51
51
|
self._type = None
|
|
52
52
|
self.local_name = name.split(".")[-1]
|
|
53
|
+
|
|
54
|
+
# demanagle names
|
|
55
|
+
self.local_name = self.local_name.lstrip('_')
|
|
56
|
+
|
|
57
|
+
|
|
53
58
|
self.__attrs = {
|
|
54
59
|
"name": name,
|
|
55
60
|
"valueReference": None,
|
|
@@ -151,7 +156,6 @@ class Start(object):
|
|
|
151
156
|
attrib["value"] = self.value
|
|
152
157
|
return Element("Start", attrib)
|
|
153
158
|
|
|
154
|
-
|
|
155
159
|
class Dimension(object):
|
|
156
160
|
def __init__(self, start: str = "", valueReference: str = ""):
|
|
157
161
|
if start and valueReference and any((start, valueReference)):
|
|
@@ -177,15 +181,38 @@ class Dimension(object):
|
|
|
177
181
|
ele = Element("Dimension", attrib)
|
|
178
182
|
return ele
|
|
179
183
|
|
|
180
|
-
class
|
|
184
|
+
class Arrayable(object):
|
|
185
|
+
def __init__(self, dimensions : List[Dimension] = [], **kwargs):
|
|
186
|
+
if dimensions:
|
|
187
|
+
check_numpy()
|
|
188
|
+
self._dimensions = dimensions
|
|
189
|
+
|
|
190
|
+
@property
|
|
191
|
+
def dimensions(self) -> List[Dimension]:
|
|
192
|
+
return self._dimensions
|
|
193
|
+
|
|
194
|
+
def get_start_str(self, value, formatter):
|
|
195
|
+
if len(self.dimensions) > 0:
|
|
196
|
+
output = " ".join([formatter(val) for val in flatten(value)])
|
|
197
|
+
if len(output) > MAX_LENGTH:
|
|
198
|
+
output = output[0]
|
|
199
|
+
return output
|
|
200
|
+
else:
|
|
201
|
+
return formatter(value)
|
|
202
|
+
|
|
203
|
+
def dimensions_xml(self) -> List[Element]:
|
|
204
|
+
return [dim.to_xml() for dim in self._dimensions]
|
|
205
|
+
|
|
206
|
+
def size(self, vars):
|
|
207
|
+
return reduce(lambda x, dim: x * int(dim.size(vars)), self._dimensions, 1)
|
|
208
|
+
|
|
209
|
+
class Float64(ModelVariable, Arrayable):
|
|
181
210
|
def __init__(self, name: str, start: Optional[Any] = None, derivative: Optional[Any] = None, dimensions: List[Dimension] = [], unit: Optional[str] = None, **kwargs):
|
|
182
|
-
|
|
211
|
+
ModelVariable.__init__(self, name, **kwargs)
|
|
212
|
+
Arrayable.__init__(self, dimensions)
|
|
183
213
|
self.__attrs = {"start": start, "derivative": derivative}
|
|
184
214
|
self._type = "Float64"
|
|
185
215
|
self._unit = unit
|
|
186
|
-
if dimensions:
|
|
187
|
-
check_numpy()
|
|
188
|
-
self.__dimensions = dimensions
|
|
189
216
|
|
|
190
217
|
@property
|
|
191
218
|
def start(self) -> Optional[Any]:
|
|
@@ -206,11 +233,6 @@ class Float64(ModelVariable):
|
|
|
206
233
|
@property
|
|
207
234
|
def derivative(self):
|
|
208
235
|
return self.__attrs["derivative"]
|
|
209
|
-
|
|
210
|
-
@property
|
|
211
|
-
def dimensions(self) -> List[Dimension]:
|
|
212
|
-
return self.__dimensions
|
|
213
|
-
|
|
214
236
|
|
|
215
237
|
def to_xml(self) -> Element:
|
|
216
238
|
attrib = dict()
|
|
@@ -218,13 +240,7 @@ class Float64(ModelVariable):
|
|
|
218
240
|
if value is not None:
|
|
219
241
|
# In order to not loose precision, a number of this type should be
|
|
220
242
|
# stored on an XML file with at least 16 significant digits
|
|
221
|
-
output = ""
|
|
222
|
-
if len(self.dimensions) > 0:
|
|
223
|
-
output = " ".join([f"{val:.16g}" for val in flatten(value)])
|
|
224
|
-
if len(output) > MAX_LENGTH:
|
|
225
|
-
output = output[0]
|
|
226
|
-
else:
|
|
227
|
-
output = f"{value:.16g}"
|
|
243
|
+
output = self.get_start_str(value, lambda v: f"{v:.16g}")
|
|
228
244
|
attrib[key] = output
|
|
229
245
|
|
|
230
246
|
if self.unit:
|
|
@@ -233,18 +249,15 @@ class Float64(ModelVariable):
|
|
|
233
249
|
self._extras = attrib
|
|
234
250
|
parent = super().to_xml()
|
|
235
251
|
|
|
236
|
-
|
|
237
|
-
parent.append(dimension.to_xml())
|
|
252
|
+
parent.extend(self.dimensions_xml())
|
|
238
253
|
|
|
239
254
|
return parent
|
|
240
255
|
|
|
241
|
-
def size(self, vars):
|
|
242
|
-
return reduce(lambda x, dim: x * int(dim.size(vars)), self.__dimensions, 1)
|
|
243
|
-
|
|
244
256
|
|
|
245
|
-
class Int32(ModelVariable):
|
|
246
|
-
def __init__(self, name: str, start: Optional[Any] = None, **kwargs):
|
|
247
|
-
|
|
257
|
+
class Int32(ModelVariable, Arrayable):
|
|
258
|
+
def __init__(self, name: str, start: Optional[Any] = None, dimensions: List[Dimension] = [], **kwargs):
|
|
259
|
+
ModelVariable.__init__(self, name, **kwargs)
|
|
260
|
+
Arrayable.__init__(self, dimensions, **kwargs)
|
|
248
261
|
self.__attrs = {"start": start}
|
|
249
262
|
self._type = "Int32";
|
|
250
263
|
|
|
@@ -260,15 +273,18 @@ class Int32(ModelVariable):
|
|
|
260
273
|
attrib = dict()
|
|
261
274
|
for key, value in self.__attrs.items():
|
|
262
275
|
if value is not None:
|
|
263
|
-
attrib[key] = str(
|
|
276
|
+
attrib[key] = self.get_start_str(value, lambda v: str(v))
|
|
264
277
|
self._extras = attrib
|
|
265
278
|
parent = super().to_xml()
|
|
279
|
+
|
|
280
|
+
parent.extend(self.dimensions_xml())
|
|
266
281
|
|
|
267
282
|
return parent
|
|
268
283
|
|
|
269
|
-
class Int64(ModelVariable):
|
|
270
|
-
def __init__(self, name: str, start: Optional[Any] = None, **kwargs):
|
|
271
|
-
|
|
284
|
+
class Int64(ModelVariable, Arrayable):
|
|
285
|
+
def __init__(self, name: str, start: Optional[Any] = None, dimensions: List[Dimension] = [], **kwargs):
|
|
286
|
+
ModelVariable.__init__(self, name, **kwargs)
|
|
287
|
+
Arrayable.__init__(self, dimensions, **kwargs)
|
|
272
288
|
self.__attrs = {"start": start}
|
|
273
289
|
self._type = "Int64";
|
|
274
290
|
|
|
@@ -284,15 +300,18 @@ class Int64(ModelVariable):
|
|
|
284
300
|
attrib = dict()
|
|
285
301
|
for key, value in self.__attrs.items():
|
|
286
302
|
if value is not None:
|
|
287
|
-
attrib[key] = str(
|
|
303
|
+
attrib[key] = self.get_start_str(value, lambda v: str(v))
|
|
288
304
|
self._extras = attrib
|
|
289
305
|
parent = super().to_xml()
|
|
290
306
|
|
|
307
|
+
parent.extend(self.dimensions_xml())
|
|
308
|
+
|
|
291
309
|
return parent
|
|
292
310
|
|
|
293
|
-
class UInt64(ModelVariable):
|
|
294
|
-
def __init__(self, name: str, start: Optional[Any] = None, **kwargs):
|
|
295
|
-
|
|
311
|
+
class UInt64(ModelVariable, Arrayable):
|
|
312
|
+
def __init__(self, name: str, start: Optional[Any] = None, dimensions: List[Dimension] = [], **kwargs):
|
|
313
|
+
ModelVariable.__init__(self, name, **kwargs)
|
|
314
|
+
Arrayable.__init__(self, dimensions, **kwargs)
|
|
296
315
|
self.__attrs = {"start": start}
|
|
297
316
|
self._type = "UInt64";
|
|
298
317
|
|
|
@@ -308,15 +327,18 @@ class UInt64(ModelVariable):
|
|
|
308
327
|
attrib = dict()
|
|
309
328
|
for key, value in self.__attrs.items():
|
|
310
329
|
if value is not None:
|
|
311
|
-
attrib[key] = str(
|
|
330
|
+
attrib[key] = self.get_start_str(value, lambda v: str(v))
|
|
312
331
|
self._extras = attrib
|
|
313
332
|
parent = super().to_xml()
|
|
314
333
|
|
|
315
|
-
|
|
334
|
+
parent.extend(self.dimensions_xml())
|
|
316
335
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
336
|
+
return parent
|
|
337
|
+
|
|
338
|
+
class Boolean(ModelVariable, Arrayable):
|
|
339
|
+
def __init__(self, name: str, start: Optional[Any] = None, dimensions: List[Dimension] = [], **kwargs):
|
|
340
|
+
ModelVariable.__init__(self, name, **kwargs)
|
|
341
|
+
Arrayable.__init__(self, dimensions, **kwargs)
|
|
320
342
|
self.__attrs = {"start": start}
|
|
321
343
|
self._type = "Boolean"
|
|
322
344
|
|
|
@@ -332,16 +354,18 @@ class Boolean(ModelVariable):
|
|
|
332
354
|
attrib = dict()
|
|
333
355
|
for key, value in self.__attrs.items():
|
|
334
356
|
if value is not None:
|
|
335
|
-
attrib[key] = str(
|
|
357
|
+
attrib[key] = self.get_start_str(value, lambda v: str(v).lower())
|
|
336
358
|
self._extras = attrib
|
|
337
359
|
parent = super().to_xml()
|
|
360
|
+
|
|
361
|
+
parent.extend(self.dimensions_xml())
|
|
338
362
|
|
|
339
363
|
return parent
|
|
340
364
|
|
|
341
365
|
|
|
342
366
|
class String(ModelVariable):
|
|
343
|
-
def __init__(self, name: str, start: Optional[Any] = None, **kwargs):
|
|
344
|
-
|
|
367
|
+
def __init__(self, name: str, start: Optional[Any] = None, dimensions: List[Dimension] = [], **kwargs):
|
|
368
|
+
ModelVariable.__init__(self, name, **kwargs)
|
|
345
369
|
self.__attrs = dict()
|
|
346
370
|
self._type = "String"
|
|
347
371
|
self._start = Start(start)
|
|
@@ -358,13 +382,13 @@ class String(ModelVariable):
|
|
|
358
382
|
attrib = dict()
|
|
359
383
|
for key, value in self.__attrs.items():
|
|
360
384
|
if value is not None:
|
|
361
|
-
attrib[key] = str(value)
|
|
385
|
+
attrib[key] = str(value, lambda v: str(v))
|
|
362
386
|
self._extras = attrib
|
|
363
387
|
parent = super().to_xml()
|
|
364
388
|
|
|
365
389
|
if self.start is not None:
|
|
366
390
|
parent.append(self._start.to_xml())
|
|
367
|
-
|
|
391
|
+
|
|
368
392
|
return parent
|
|
369
393
|
|
|
370
394
|
class Enumeration(ModelVariable):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pythonfmu3
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: A lightweight framework that enables the packaging of Python3.x code as co-simulation FMUs.
|
|
5
5
|
Home-page: https://github.com/stephensmith25/PythonFMU3
|
|
6
6
|
Author: Stephen Smith
|
|
@@ -173,6 +173,7 @@ To create a model exchange FMU you must inherit from `Fmi3SlaveBase` and one of
|
|
|
173
173
|
```python
|
|
174
174
|
|
|
175
175
|
from pythonfmu3 import Fmi3Causality, Fmi3SlaveBase, Float64, ModelExchange
|
|
176
|
+
from typing import List
|
|
176
177
|
|
|
177
178
|
|
|
178
179
|
class PythonSlaveMX(Fmi3SlaveBase, ModelExchange):
|
|
@@ -1,42 +1,43 @@
|
|
|
1
1
|
pythonfmu3/__init__.py,sha256=VJ4QqOZTU8sBI8xhiRVD540Hsp381ma24xGWHABZ724,551
|
|
2
2
|
pythonfmu3/__main__.py,sha256=gC1T8x2d02hhqshyNQGSS70SyCk-3I3t8zPqoRo2Xd8,1543
|
|
3
|
-
pythonfmu3/_version.py,sha256=
|
|
4
|
-
pythonfmu3/builder.py,sha256=
|
|
3
|
+
pythonfmu3/_version.py,sha256=oYLGMpySamd16KLiaBTfRyrAS7_oyp-TOEHmzmeumwg,22
|
|
4
|
+
pythonfmu3/builder.py,sha256=DLpy6Hd9ZmbeQLVMw_FcxnS5LB_-yRXzkPjlupyiYsg,11060
|
|
5
5
|
pythonfmu3/cosimulation.py,sha256=EZ5pa_5hy1AwoaZRzZqNz_IX8kjxoFM9sPgeqrUiRuw,179
|
|
6
6
|
pythonfmu3/default_experiment.py,sha256=FJ0l0FpU7pT4Pox2RiA2y-Cb_e7DE2XlbWKySRYQaVk,293
|
|
7
7
|
pythonfmu3/deploy.py,sha256=eqFWVxZUkJCLvmq1-GuMNjn2j0VCGoaXPhRWrCk2Vxg,3741
|
|
8
8
|
pythonfmu3/enums.py,sha256=ZmC6vGeBTGt7HarPQ4uYV10ezPsvIxAHH1ypjNq7G3E,729
|
|
9
|
-
pythonfmu3/fmi3slave.py,sha256=
|
|
9
|
+
pythonfmu3/fmi3slave.py,sha256=JpN_zeaXpEIk2Hnnd7LvV2cs5IOD6x1GEAYdNy9TMWU,20844
|
|
10
10
|
pythonfmu3/logmsg.py,sha256=0wn11GLwq0LLWqyC2ktLRjQFWlpj07wWliZ8rUHx1gg,359
|
|
11
11
|
pythonfmu3/modelexchange.py,sha256=pdC3gvr-vCXA8qvJ_urWplJZWEi1YKjMcNczme7GOOo,1884
|
|
12
12
|
pythonfmu3/osutil.py,sha256=1qN6qudN4zCupZwc15pzp52WObkqi6jGy9a-MehNt9Q,656
|
|
13
13
|
pythonfmu3/unit.py,sha256=SjOaywb5lVQbAO_iLjc_7Ly3nYrmAvIW2_hAGt12UFU,1475
|
|
14
14
|
pythonfmu3/variable_types.py,sha256=Q0D4wlGi3i3zE5UsmGJEpNh7SV_W8mn_8p_WIkwrLQA,2881
|
|
15
|
-
pythonfmu3/variables.py,sha256=
|
|
15
|
+
pythonfmu3/variables.py,sha256=U4ESws0jx6QNlzvT9d7If2HEgp6ujpFi225GO9FgHaM,13500
|
|
16
16
|
pythonfmu3/pythonfmu-export/.clang-format,sha256=ApbsHWYwilCXJ1iBux4nqOjLkaqgbGLsVrc_U3hX7WI,944
|
|
17
17
|
pythonfmu3/pythonfmu-export/CMakeLists.txt,sha256=WLFfomT1rj9eWJMSXLtSbh5HLIu0DR5VCiYdCl8Cxrw,1854
|
|
18
18
|
pythonfmu3/pythonfmu-export/build_unix.sh,sha256=I5RrF2O6y0hRG_SN4ExKN_CCFYaa2l-ngKzqmBXnHmA,73
|
|
19
19
|
pythonfmu3/pythonfmu-export/build_win.sh,sha256=UzmAcWqFmwBu6mvYne2Dx3UK8iPwTtP4HpjICsjUaJA,97
|
|
20
20
|
pythonfmu3/pythonfmu-export/src/CMakeLists.txt,sha256=fOVlV7hy9c0wx_Qp4K51tQaQ5xy9lL4qtyGl15ZXfGs,1208
|
|
21
21
|
pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_common.hpp,sha256=cgrlZa5L-bbjZeVi0pmy4JKE5UJ2GszzuyOqTdRcBRQ,4353
|
|
22
|
-
pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_cs.cpp,sha256=
|
|
23
|
-
pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_cs.hpp,sha256=
|
|
24
|
-
pythonfmu3/pythonfmu-export/src/cppfmu/fmi_functions.cpp,sha256=
|
|
22
|
+
pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_cs.cpp,sha256=explSkxXPayKgSMHxadQ8_Gd8IMYwSnOw5SBItTimuE,4093
|
|
23
|
+
pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_cs.hpp,sha256=FO2ugz1-YFE8St2AO7k_cXtT7qM5ktrejv_SEKjDRf4,7734
|
|
24
|
+
pythonfmu3/pythonfmu-export/src/cppfmu/fmi_functions.cpp,sha256=oetqW88dlZd75suBoScD0AcA4yktCBSaRfx0vHD_Lyw,30105
|
|
25
25
|
pythonfmu3/pythonfmu-export/src/fmi/fmi3FunctionTypes.h,sha256=Tk1WY0nAYBGiOAQ8zVbmqRAfdQttITWsLba7udhBwG4,30050
|
|
26
26
|
pythonfmu3/pythonfmu-export/src/fmi/fmi3Functions.h,sha256=NsHuclp20wcuUInYf-91UXZbljTeu2cPXENqNEORdgU,16262
|
|
27
27
|
pythonfmu3/pythonfmu-export/src/fmi/fmi3PlatformTypes.h,sha256=ZCQLJgSbRGrMsBiQ4auaYCY4J3Hck6g3t1iZp5NEguw,4251
|
|
28
28
|
pythonfmu3/pythonfmu-export/src/pythonfmu/IPyState.hpp,sha256=GLiOjhKLDVEICersnqVwezwEshbxfdh_cyMxBJGFbu8,456
|
|
29
|
-
pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.cpp,sha256=
|
|
30
|
-
pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.hpp,sha256=
|
|
29
|
+
pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.cpp,sha256=3VTCxq4uXBJW8Ut6oMHHSUGO8OMtSSPoK2VsPGtuT3U,33908
|
|
30
|
+
pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.hpp,sha256=59icfvAVdq5rFaeAE1PgEqpknyZHgSQMEBXnZz3efAw,5602
|
|
31
31
|
pythonfmu3/pythonfmu-export/src/pythonfmu/PyState.hpp,sha256=CjFEIrZu8b1jxQAIgfI_o36hyItW_SdQ5VSkImf7JNs,2977
|
|
32
|
-
pythonfmu3/resources/binaries/x86_64-linux/libpythonfmu-export.so,sha256=
|
|
33
|
-
pythonfmu3/resources/binaries/x86_64-windows/pythonfmu-export.dll,sha256=
|
|
32
|
+
pythonfmu3/resources/binaries/x86_64-linux/libpythonfmu-export.so,sha256=U_1xuoNMGN6i3xXX5ns6QkQeemB3V8tayCX_mLUFtYA,367944
|
|
33
|
+
pythonfmu3/resources/binaries/x86_64-windows/pythonfmu-export.dll,sha256=SFtJHFYRgW8kp6faJ78HKCYOYaPQVXhtG6SUR3Zv5Iw,427008
|
|
34
34
|
pythonfmu3/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
35
|
pythonfmu3/tests/conftest.py,sha256=B6XxTnBdeF_tEJ3w2DlfPKUfvlk-oULgIhQtXkgOJIc,171
|
|
36
36
|
pythonfmu3/tests/test_builder.py,sha256=GrD4ziin3RLOe_36rBQCMnKrSkhc3IqnxE1a6kCFPok,6842
|
|
37
37
|
pythonfmu3/tests/test_deploy.py,sha256=JCDo-O93-izxrP9Q4K0njBcfZ-gAXYx9aZ4plgctz7k,1783
|
|
38
|
+
pythonfmu3/tests/test_docs.py,sha256=VZZFUj2j35mBKvWATIUzJnWNDfiETsLdHZnRZGutOVM,3134
|
|
38
39
|
pythonfmu3/tests/test_fmi3slave.py,sha256=VSd3o3ejOcTG6TlnqxVK7YQc4QCKFTCQnpIgleaxJl4,4801
|
|
39
|
-
pythonfmu3/tests/test_integration.py,sha256=
|
|
40
|
+
pythonfmu3/tests/test_integration.py,sha256=0WdI02SmzGB2G5oBnPYgmUnvkKNQ_CpIyfdsUVWfDis,16194
|
|
40
41
|
pythonfmu3/tests/test_logger.py,sha256=OcHQhxUtNBPH-0zdmheC4I9OWz1yu48W8MYDshNVkf8,5765
|
|
41
42
|
pythonfmu3/tests/test_multiple_fmus.py,sha256=-sthCm2YUZiRkdfvpLQNgquPBForUKQ7HGqfFBdrRas,3942
|
|
42
43
|
pythonfmu3/tests/test_variables.py,sha256=FL7eUCXH4RmH0rK0k6qXDnyDzthW_wAWJBHEmC-u8SI,10384
|
|
@@ -48,11 +49,12 @@ pythonfmu3/tests/slaves/localmodule.py,sha256=-q5Lmh2I88MG7nLTscms0n5xhHLkUDed1I
|
|
|
48
49
|
pythonfmu3/tests/slaves/pythonslave.py,sha256=uzrTQmfk0QBalxNTviGMZNph_YgVmcbxPqKgX5rSvXg,2172
|
|
49
50
|
pythonfmu3/tests/slaves/pythonslaveMX.py,sha256=rmtiKWj-7DNCEGKAzCoS-6ybkWKabYMhatpn14r7UpA,1167
|
|
50
51
|
pythonfmu3/tests/slaves/pythonslaveMXCS.py,sha256=P1aKY92obd-y9VGwDRin9fwmnAlSmdHguFW8E5-LU4I,1417
|
|
52
|
+
pythonfmu3/tests/slaves/pythonslave_arraytypes.py,sha256=l5DB0HI0CH_saLwoe1BvZUXgEzxGGYUHiaG3npt2vDk,2429
|
|
51
53
|
pythonfmu3/tests/slaves/pythonslave_read_file.py,sha256=t2sDaZSr2veD91gdqCO9W9CN-AN3TyXABXXfV9Rt0Xs,791
|
|
52
54
|
pythonfmu3/tests/slaves/slavewithdep.py,sha256=hHDFB0dw8wkHiGzxeAVbz9O5LR6ghsFeONgRFdiK_t0,812
|
|
53
|
-
pythonfmu3-0.3.
|
|
54
|
-
pythonfmu3-0.3.
|
|
55
|
-
pythonfmu3-0.3.
|
|
56
|
-
pythonfmu3-0.3.
|
|
57
|
-
pythonfmu3-0.3.
|
|
58
|
-
pythonfmu3-0.3.
|
|
55
|
+
pythonfmu3-0.3.4.dist-info/licenses/LICENSE,sha256=RL2018BU2DKcTi8Eb4ODF-XF3wnr7SDKvMP5S49x4rQ,1188
|
|
56
|
+
pythonfmu3-0.3.4.dist-info/METADATA,sha256=ydejh5qlluJ22V1R33dKaQQ_TR7-K2BBmHuDcq9lo0E,9375
|
|
57
|
+
pythonfmu3-0.3.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
58
|
+
pythonfmu3-0.3.4.dist-info/entry_points.txt,sha256=GgkWYs0DKGHLcijMEYZGkhkHOK2RVUpjGwvl1fwyDwQ,60
|
|
59
|
+
pythonfmu3-0.3.4.dist-info/top_level.txt,sha256=6ne7bh_cME1hepxCx1BG8N5QVhVAufrp7LLok6vq7nE,11
|
|
60
|
+
pythonfmu3-0.3.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|