steer-core 0.1.32__tar.gz → 0.1.34__tar.gz

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.
Files changed (30) hide show
  1. {steer_core-0.1.32 → steer_core-0.1.34}/PKG-INFO +2 -1
  2. {steer_core-0.1.32 → steer_core-0.1.34}/pyproject.toml +1 -0
  3. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Data/DataManager.py +0 -3
  4. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Mixins/Dunder.py +4 -1
  5. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Mixins/Serializer.py +19 -2
  6. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/__init__.py +1 -1
  7. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core.egg-info/PKG-INFO +2 -1
  8. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core.egg-info/requires.txt +1 -0
  9. {steer_core-0.1.32 → steer_core-0.1.34}/README.md +0 -0
  10. {steer_core-0.1.32 → steer_core-0.1.34}/setup.cfg +0 -0
  11. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Constants/Units.py +0 -0
  12. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Constants/Universal.py +0 -0
  13. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Constants/__init__.py +0 -0
  14. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/ContextManagers/ContextManagers.py +0 -0
  15. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/ContextManagers/__init__.py +0 -0
  16. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Data/__init__.py +0 -0
  17. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Decorators/Coordinates.py +0 -0
  18. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Decorators/General.py +0 -0
  19. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Decorators/Objects.py +0 -0
  20. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Decorators/__init__.py +0 -0
  21. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Mixins/Colors.py +0 -0
  22. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Mixins/Coordinates.py +0 -0
  23. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Mixins/Data.py +0 -0
  24. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Mixins/Plotter.py +0 -0
  25. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Mixins/TypeChecker.py +0 -0
  26. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core/Mixins/__init__.py +0 -0
  27. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core.egg-info/SOURCES.txt +0 -0
  28. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core.egg-info/dependency_links.txt +0 -0
  29. {steer_core-0.1.32 → steer_core-0.1.34}/steer_core.egg-info/top_level.txt +0 -0
  30. {steer_core-0.1.32 → steer_core-0.1.34}/test/test_validation_mixin.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: steer-core
3
- Version: 0.1.32
3
+ Version: 0.1.34
4
4
  Summary: Modelling energy storage from cell to site - STEER OpenCell Design
5
5
  Author-email: Nicholas Siemons <nsiemons@stanford.edu>
6
6
  Maintainer-email: Nicholas Siemons <nsiemons@stanford.edu>
@@ -26,6 +26,7 @@ Requires-Dist: numpy==1.26.4
26
26
  Requires-Dist: datetime==5.5
27
27
  Requires-Dist: plotly==6.2.0
28
28
  Requires-Dist: scipy==1.15.3
29
+ Requires-Dist: msgpack==1.1.2
29
30
  Provides-Extra: dev
30
31
  Requires-Dist: pytest>=7.0; extra == "dev"
31
32
  Requires-Dist: pytest-cov; extra == "dev"
@@ -33,6 +33,7 @@ dependencies = [
33
33
  "datetime==5.5",
34
34
  "plotly==6.2.0",
35
35
  "scipy==1.15.3",
36
+ "msgpack==1.1.2",
36
37
  ]
37
38
 
38
39
  [project.urls]
@@ -361,7 +361,6 @@ class DataManager:
361
361
  self._cursor.execute(f"DELETE FROM {table_name} WHERE {condition}")
362
362
  self._connection.commit()
363
363
 
364
-
365
364
  @classmethod
366
365
  def from_database(cls: type[T], name: str, table_name: str = None) -> T:
367
366
  """
@@ -427,8 +426,6 @@ class DataManager:
427
426
  f"Available: {all_available}"
428
427
  )
429
428
 
430
-
431
-
432
429
  def __del__(self):
433
430
  self._connection.close()
434
431
 
@@ -154,7 +154,10 @@ class DunderMixin:
154
154
  """
155
155
  String representation of the instance showing all @property decorated attributes and their values.
156
156
  """
157
- return f"{self.__class__.__name__}, {self.__name__}"
157
+ if hasattr(self, 'name') and self.name:
158
+ return f"{self.__class__.__name__} ({self.name})"
159
+ else:
160
+ return f"{self.__class__.__name__}"
158
161
 
159
162
  def __repr__(self):
160
163
  """
@@ -25,7 +25,12 @@ class SerializerMixin:
25
25
  The serialized byte representation of the object.
26
26
  """
27
27
  m.patch() # Enable numpy support
28
- data = msgpack.packb(self._to_dict(), use_bin_type=True)
28
+ # Include class information for proper deserialization
29
+ obj_dict = {
30
+ '_class': f"{self.__class__.__module__}.{self.__class__.__name__}",
31
+ **self._to_dict()
32
+ }
33
+ data = msgpack.packb(obj_dict, use_bin_type=True)
29
34
 
30
35
  if compress:
31
36
  # Add marker byte to indicate compression
@@ -133,7 +138,19 @@ class SerializerMixin:
133
138
  data = data[1:]
134
139
 
135
140
  obj_dict = msgpack.unpackb(data, raw=False)
136
- return cls._from_dict(obj_dict)
141
+
142
+ # Use stored class information if available
143
+ if '_class' in obj_dict:
144
+ import importlib
145
+ module_name, class_name = obj_dict['_class'].rsplit('.', 1)
146
+ module = importlib.import_module(module_name)
147
+ actual_cls = getattr(module, class_name)
148
+ # Remove class marker before reconstructing
149
+ obj_data = {k: v for k, v in obj_dict.items() if k != '_class'}
150
+ return actual_cls._from_dict(obj_data)
151
+ else:
152
+ # Fallback for backward compatibility
153
+ return cls._from_dict(obj_dict)
137
154
 
138
155
  @classmethod
139
156
  def _deserialize_value(cls, value: Any) -> Any:
@@ -1,4 +1,4 @@
1
- __version__ = "0.1.32"
1
+ __version__ = "0.1.34"
2
2
 
3
3
  from .Mixins.Colors import ColorMixin
4
4
  from .Mixins.Coordinates import CoordinateMixin
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: steer-core
3
- Version: 0.1.32
3
+ Version: 0.1.34
4
4
  Summary: Modelling energy storage from cell to site - STEER OpenCell Design
5
5
  Author-email: Nicholas Siemons <nsiemons@stanford.edu>
6
6
  Maintainer-email: Nicholas Siemons <nsiemons@stanford.edu>
@@ -26,6 +26,7 @@ Requires-Dist: numpy==1.26.4
26
26
  Requires-Dist: datetime==5.5
27
27
  Requires-Dist: plotly==6.2.0
28
28
  Requires-Dist: scipy==1.15.3
29
+ Requires-Dist: msgpack==1.1.2
29
30
  Provides-Extra: dev
30
31
  Requires-Dist: pytest>=7.0; extra == "dev"
31
32
  Requires-Dist: pytest-cov; extra == "dev"
@@ -3,6 +3,7 @@ numpy==1.26.4
3
3
  datetime==5.5
4
4
  plotly==6.2.0
5
5
  scipy==1.15.3
6
+ msgpack==1.1.2
6
7
 
7
8
  [dev]
8
9
  pytest>=7.0
File without changes
File without changes