pythonfmu3 0.1.11__py3-none-any.whl → 0.1.12__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 CHANGED
@@ -1 +1 @@
1
- __version__ = "0.1.11"
1
+ __version__ = "0.1.12"
pythonfmu3/fmi3slave.py CHANGED
@@ -55,6 +55,7 @@ class Fmi3Slave(ABC):
55
55
  self.modelName: Optional[str] = self.__class__.__name__
56
56
  self.description: Optional[str] = None
57
57
  self.default_experiment: Optional[DefaultExperiment] = None
58
+
58
59
  self.type_definitions: Dict[str, VariableType] = {}
59
60
  self.units: Dict[str, Unit] = {}
60
61
 
@@ -187,7 +188,7 @@ class Fmi3Slave(ABC):
187
188
  raise Exception(f"Unsupported type {type(var)}!")
188
189
  var.start = refs if len(getattr(var, "dimensions", [])) > 0 else refs[0]
189
190
 
190
- def register_variable(self, var: ModelVariable, nested: bool = True, var_type: Any = None):
191
+ def register_variable(self, var: ModelVariable, nested: bool = True, units: str = "", var_type: Any = None):
191
192
  """Register a variable as FMU interface.
192
193
 
193
194
  Args:
@@ -223,7 +224,7 @@ class Fmi3Slave(ABC):
223
224
  def setup_experiment(self, start_time: float):
224
225
  pass
225
226
 
226
- def add_units(self, units: List[Unit]):
227
+ def register_units(self, units: List[Unit]):
227
228
  for unit in units:
228
229
  self.units[unit.name] = unit
229
230
 
pythonfmu3/variables.py CHANGED
@@ -158,10 +158,11 @@ class Dimension(object):
158
158
  return ele
159
159
 
160
160
  class Float64(ModelVariable):
161
- def __init__(self, name: str, start: Optional[Any] = None, derivative: Optional[Any] = None, dimensions: List[Dimension] = [], **kwargs):
161
+ def __init__(self, name: str, start: Optional[Any] = None, derivative: Optional[Any] = None, dimensions: List[Dimension] = [], unit: Optional[str] = None, **kwargs):
162
162
  super().__init__(name, **kwargs)
163
163
  self.__attrs = {"start": start, "derivative": derivative}
164
164
  self._type = "Float64"
165
+ self._unit = unit
165
166
  if dimensions:
166
167
  check_numpy()
167
168
  self.__dimensions = dimensions
@@ -173,6 +174,14 @@ class Float64(ModelVariable):
173
174
  @start.setter
174
175
  def start(self, value: float):
175
176
  self.__attrs["start"] = value
177
+
178
+ @property
179
+ def unit(self) -> Optional[Any]:
180
+ return self._unit
181
+
182
+ @unit.setter
183
+ def unit(self, value: str):
184
+ self._unit = value
176
185
 
177
186
  @property
178
187
  def derivative(self):
@@ -182,6 +191,7 @@ class Float64(ModelVariable):
182
191
  def dimensions(self) -> List[Dimension]:
183
192
  return self.__dimensions
184
193
 
194
+
185
195
  def to_xml(self) -> Element:
186
196
  attrib = dict()
187
197
  for key, value in self.__attrs.items():
@@ -194,6 +204,10 @@ class Float64(ModelVariable):
194
204
  else:
195
205
  output = f"{value:.16g}"
196
206
  attrib[key] = output
207
+
208
+ if self.unit:
209
+ attrib["unit"] = self.unit
210
+
197
211
  self._extras = attrib
198
212
  parent = super().to_xml()
199
213
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pythonfmu3
3
- Version: 0.1.11
3
+ Version: 0.1.12
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
@@ -21,8 +21,8 @@ Classifier: Topic :: Scientific/Engineering
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
23
  Provides-Extra: tests
24
- Requires-Dist: pytest ; extra == 'tests'
25
- Requires-Dist: fmpy ; extra == 'tests'
24
+ Requires-Dist: pytest; extra == "tests"
25
+ Requires-Dist: fmpy; extra == "tests"
26
26
 
27
27
  # PythonFMU3
28
28
 
@@ -1,16 +1,16 @@
1
1
  pythonfmu3/__init__.py,sha256=PT1R0LpSInyVdXGJbkWMTQym6_SEU7CqUkG7OH5j1f0,396
2
2
  pythonfmu3/__main__.py,sha256=gC1T8x2d02hhqshyNQGSS70SyCk-3I3t8zPqoRo2Xd8,1543
3
- pythonfmu3/_version.py,sha256=nllDrH0jyChMuuYrK0CC55iTBKUNTUjejtcwxyUF2EQ,23
3
+ pythonfmu3/_version.py,sha256=LcIlFjHZFfiF9Rd4UHoakmombOFkxIYk00I181frGBM,23
4
4
  pythonfmu3/builder.py,sha256=YLTeLLpiFOkoDYwnJ55GEhb3ham0xxROMjMN6bvaw5Y,8784
5
5
  pythonfmu3/default_experiment.py,sha256=FJ0l0FpU7pT4Pox2RiA2y-Cb_e7DE2XlbWKySRYQaVk,293
6
6
  pythonfmu3/deploy.py,sha256=eqFWVxZUkJCLvmq1-GuMNjn2j0VCGoaXPhRWrCk2Vxg,3741
7
7
  pythonfmu3/enums.py,sha256=ZmC6vGeBTGt7HarPQ4uYV10ezPsvIxAHH1ypjNq7G3E,729
8
- pythonfmu3/fmi3slave.py,sha256=gLjwxTOV2UHuKNK0iFT9LUtUr5AQtZUrHLd7-QCcawQ,16563
8
+ pythonfmu3/fmi3slave.py,sha256=KoKVXNsuDiKjJT_vPxi0WOtFGriQjgmj6qtWj1GclZw,16586
9
9
  pythonfmu3/logmsg.py,sha256=0wn11GLwq0LLWqyC2ktLRjQFWlpj07wWliZ8rUHx1gg,359
10
10
  pythonfmu3/osutil.py,sha256=KMAoMf_BpqFQQUy3WzHnt9jiklkS1xy0syIbj7kNH6A,656
11
11
  pythonfmu3/unit.py,sha256=SjOaywb5lVQbAO_iLjc_7Ly3nYrmAvIW2_hAGt12UFU,1475
12
12
  pythonfmu3/variable_types.py,sha256=Q0D4wlGi3i3zE5UsmGJEpNh7SV_W8mn_8p_WIkwrLQA,2881
13
- pythonfmu3/variables.py,sha256=n0qfwqeRBvaEnSpgbGzw2qturYUSwt4y9BCKFdyK1yc,11285
13
+ pythonfmu3/variables.py,sha256=mCu0nY09Snt8tGuAjlKmbtX5J4Cp0TwaaLYjmnjrmF8,11562
14
14
  pythonfmu3/pythonfmu-export/.clang-format,sha256=ApbsHWYwilCXJ1iBux4nqOjLkaqgbGLsVrc_U3hX7WI,944
15
15
  pythonfmu3/pythonfmu-export/CMakeLists.txt,sha256=p0-4Xh_sAaOI9AVb8lsUsMxJPc6bg9b_6CF6NJt5FHE,1847
16
16
  pythonfmu3/pythonfmu-export/build_unix.sh,sha256=I5RrF2O6y0hRG_SN4ExKN_CCFYaa2l-ngKzqmBXnHmA,73
@@ -26,8 +26,8 @@ pythonfmu3/pythonfmu-export/src/fmi/fmi3PlatformTypes.h,sha256=ZCQLJgSbRGrMsBiQ4
26
26
  pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.cpp,sha256=uVGq0QcTySLjgTd3_fe-csPenT89DukCPL4u_j4rDew,22610
27
27
  pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.hpp,sha256=XvRaA0OvB9MRSxFUP64TvHsLEP4CSOn0WcfImegS2_8,3954
28
28
  pythonfmu3/pythonfmu-export/src/pythonfmu/PyState.hpp,sha256=PApY1VOpEJbzrnQjKB1-UoTKKCzaDbIGF-dZt6f3Uls,717
29
- pythonfmu3/resources/binaries/x86_64-linux/libpythonfmu-export.so,sha256=-xeuSKeqjB5_96yRhInnWCPh6kBXmlOHNeRzZZfOG9M,353232
30
- pythonfmu3/resources/binaries/x86_64-windows/pythonfmu-export.dll,sha256=fRxBPluHxbDDGmnUi0NMeaZX8qB4zFA_8Sn_6Ff4VHA,417280
29
+ pythonfmu3/resources/binaries/x86_64-linux/libpythonfmu-export.so,sha256=xTe9Sa52kpQqL8HFZtx-0Wm502N5GgkAeguDepUhloY,353232
30
+ pythonfmu3/resources/binaries/x86_64-windows/pythonfmu-export.dll,sha256=OVZxmPljRrP-TA3s1R0ZdxLJadX_l3ED88HCgwo72U8,417792
31
31
  pythonfmu3/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  pythonfmu3/tests/conftest.py,sha256=B6XxTnBdeF_tEJ3w2DlfPKUfvlk-oULgIhQtXkgOJIc,171
33
33
  pythonfmu3/tests/test_builder.py,sha256=StR9oNmF6dtuxxKtPFlncLQN-O7n97nvHm6EFH4Qn14,6252
@@ -45,9 +45,9 @@ pythonfmu3/tests/slaves/localmodule.py,sha256=-q5Lmh2I88MG7nLTscms0n5xhHLkUDed1I
45
45
  pythonfmu3/tests/slaves/pythonslave.py,sha256=H75vLhqshSWWvMj2NQt6a_aQhA6BGSkBVJstjjVE0AU,2024
46
46
  pythonfmu3/tests/slaves/pythonslave_read_file.py,sha256=NIAmyZZGNAcnqf8R5jb1yFcQxj6iSMOAc13pY0GFtco,634
47
47
  pythonfmu3/tests/slaves/slavewithdep.py,sha256=4yqxa0vsOTLLvtaUQFkjfU9OcwjDUtuUe-qIjnD-jrw,647
48
- pythonfmu3-0.1.11.dist-info/LICENSE,sha256=24Cw_MPouLK-G_t8Hgjm59IS9BnPoL6SKkyuZ0xesXY,1155
49
- pythonfmu3-0.1.11.dist-info/METADATA,sha256=dM3wszQmsIZlzlXCI_49kVB6bQPgGMiJc38CB10TmCM,7317
50
- pythonfmu3-0.1.11.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
51
- pythonfmu3-0.1.11.dist-info/entry_points.txt,sha256=GgkWYs0DKGHLcijMEYZGkhkHOK2RVUpjGwvl1fwyDwQ,60
52
- pythonfmu3-0.1.11.dist-info/top_level.txt,sha256=6ne7bh_cME1hepxCx1BG8N5QVhVAufrp7LLok6vq7nE,11
53
- pythonfmu3-0.1.11.dist-info/RECORD,,
48
+ pythonfmu3-0.1.12.dist-info/LICENSE,sha256=24Cw_MPouLK-G_t8Hgjm59IS9BnPoL6SKkyuZ0xesXY,1155
49
+ pythonfmu3-0.1.12.dist-info/METADATA,sha256=N--5rVV8JGikRz4Y9nO2FaC_B7j6ACASPbUSRG4gXkU,7315
50
+ pythonfmu3-0.1.12.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
51
+ pythonfmu3-0.1.12.dist-info/entry_points.txt,sha256=GgkWYs0DKGHLcijMEYZGkhkHOK2RVUpjGwvl1fwyDwQ,60
52
+ pythonfmu3-0.1.12.dist-info/top_level.txt,sha256=6ne7bh_cME1hepxCx1BG8N5QVhVAufrp7LLok6vq7nE,11
53
+ pythonfmu3-0.1.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: setuptools (73.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5