valetudo-map-parser 0.1.10b2__py3-none-any.whl → 0.1.10b3__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.
@@ -1,7 +1,7 @@
1
1
  """
2
2
  Class Camera Shared.
3
3
  Keep the data between the modules.
4
- Version: v0.1.9
4
+ Version: v0.1.10
5
5
  """
6
6
 
7
7
  import asyncio
@@ -82,7 +82,7 @@ class CameraShared:
82
82
  self.user_colors = Colors # User base colors
83
83
  self.rooms_colors = Colors # Rooms colors
84
84
  self.vacuum_battery = 0 # Vacuum battery state
85
- self.vacuum_bat_charged: bool = True # Vacuum charged and ready
85
+ self.vacuum_bat_charged: bool = False # Vacuum charged and ready
86
86
  self.vacuum_connection = None # Vacuum connection state
87
87
  self.vacuum_state = None # Vacuum state
88
88
  self.charger_position = None # Vacuum Charger position
@@ -88,6 +88,7 @@ class BaseHandler:
88
88
  bytes_format: bool = False,
89
89
  text_enabled: bool = False,
90
90
  vacuum_status: str | None = None,
91
+
91
92
  ) -> PilPNG | None:
92
93
  """
93
94
  Unified async function to get PIL image from JSON data for both Hypfer and Rand256 handlers.
@@ -101,6 +102,7 @@ class BaseHandler:
101
102
  @param m_json: The JSON data to use to draw the image
102
103
  @param destinations: MQTT destinations for labels (used by Rand256)
103
104
  @param bytes_format: If True, also convert to PNG bytes and store in shared.binary_image
105
+
104
106
  @param text_enabled: If True, draw text on the image
105
107
  @param vacuum_status: Vacuum status to display on the image
106
108
  @return: PIL Image or None
@@ -62,7 +62,7 @@ class HypferMapImageHandler(BaseHandler, AutoCrop):
62
62
  self.img_work_layer = (
63
63
  None # persistent working buffer to avoid per-frame allocations
64
64
  )
65
- self.active_zones = None # vacuum active zones.
65
+ self.active_zones = [] # vacuum active zones.
66
66
  self.svg_wait = False # SVG image creation wait.
67
67
  self.imd = ImDraw(self) # Image Draw class.
68
68
  self.color_grey = (128, 128, 128, 255)
@@ -137,9 +137,10 @@ class HypferMapImageHandler(BaseHandler, AutoCrop):
137
137
 
138
138
  # Get the pixels size and layers from the JSON data
139
139
  pixel_size = int(m_json["pixelSize"])
140
+ self.active_zones = self.json_data.active_zones
140
141
 
141
142
  new_frame_hash = await self.calculate_array_hash(
142
- self.json_data.layers, self.json_data.active_zones
143
+ self.json_data.layers, self.active_zones
143
144
  )
144
145
  if self.frame_number == 0:
145
146
  self.img_hash = new_frame_hash
@@ -217,7 +217,6 @@ class ImageData:
217
217
  """
218
218
  if layer_dict is None:
219
219
  layer_dict = {}
220
- if active_list is None:
221
220
  active_list = []
222
221
 
223
222
  if isinstance(json_obj, dict):
@@ -228,12 +227,12 @@ class ImageData:
228
227
  layer_dict.setdefault(layer_type, []).append(
229
228
  json_obj.get("compressedPixels", [])
230
229
  )
231
- if layer_type == "segment":
232
230
  # Safely extract "active" flag if present and convertible to int
233
- try:
234
- active_list.append(int(meta_data.get("active", 0)))
235
- except (ValueError, TypeError):
236
- pass # skip invalid/missing 'active' values
231
+ if layer_type == "segment":
232
+ try:
233
+ active_list.append(int(meta_data.get("active", 0)))
234
+ except (ValueError, TypeError):
235
+ pass # skip invalid/missing 'active' values
237
236
 
238
237
  # json_obj.items() yields (key, value), so we only want the values
239
238
  for _, value in json_obj.items():
@@ -724,13 +723,15 @@ class HyperMapData:
724
723
  paths = ImageData.find_paths_entities(json_data)
725
724
  image_size = ImageData.get_image_size(json_data)
726
725
  areas = ImageData.find_zone_entities(json_data)
726
+ layers = {}
727
+ active_zones = []
727
728
  # Hypothetical obstacles finder, if you have one
728
729
  obstacles = getattr(ImageData, "find_obstacles_entities", lambda *_: {})(
729
730
  json_data
730
731
  )
731
732
  virtual_walls = ImageData.find_virtual_walls(json_data)
732
733
  pixel_size = int(json_data["pixelSize"])
733
- layers, active_zones = ImageData.find_layers(json_data["layers"], {}, [])
734
+ layers, active_zones = ImageData.find_layers(json_data["layers"], layers, active_zones)
734
735
  entity_dict = ImageData.find_points_entities(json_data)
735
736
 
736
737
  return cls(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: valetudo-map-parser
3
- Version: 0.1.10b2
3
+ Version: 0.1.10b3
4
4
  Summary: A Python library to parse Valetudo map data returning a PIL Image object.
5
5
  License: Apache-2.0
6
6
  Author: Sandro Cantarella
@@ -16,19 +16,19 @@ valetudo_map_parser/config/fonts/NotoSansCJKhk-VF.ttf,sha256=xIXXLKCJzmWoPEg8Hdv
16
16
  valetudo_map_parser/config/fonts/NotoSansKhojki.ttf,sha256=XJWzSmpN-Ql6jTfTvFojP_JkCHOztQvixQc1_7hPWrc,107388
17
17
  valetudo_map_parser/config/optimized_element_map.py,sha256=52BCnkvVv9bre52LeVIfT8nhnEIpc0TuWTv1xcNu0Rk,15744
18
18
  valetudo_map_parser/config/rand256_parser.py,sha256=LU3y7XvRRQxVen9iwom0dOaDnJJvhZdg97NqOYRZFas,16279
19
- valetudo_map_parser/config/shared.py,sha256=iAPUhwBUsgxtnkOoGozU6V4pYLn1C19kxvVsYMcxjTE,13023
19
+ valetudo_map_parser/config/shared.py,sha256=fyJqie3pIUxClHJLUqEtxbQ0gPmYdBhz38IWIAMP3ng,13025
20
20
  valetudo_map_parser/config/types.py,sha256=pq0FmSQkyrG0b0BRcZdRUXJ9pFmg4l_qmhVyAYoZ84o,17357
21
- valetudo_map_parser/config/utils.py,sha256=2FFw-z8vcOi-DVUvkwNKBK22L29FHp_iWNLchBcfMM4,35422
21
+ valetudo_map_parser/config/utils.py,sha256=0iqrLGhZHXMCxsEfYL94m-GUPnP3aaYRMbCxdFUjO5k,35424
22
22
  valetudo_map_parser/hypfer_draw.py,sha256=yN7g-ExRVY2_fft3jTCtQqxNlaU09brt5jVnZILFE6s,28239
23
- valetudo_map_parser/hypfer_handler.py,sha256=ArQo-God2NnsgmNGXdRAAloCSF0eqktgi6XIXwsqM10,23930
23
+ valetudo_map_parser/hypfer_handler.py,sha256=DE8wAXVMWywK6jGaykjnuC4Y_QtcmsgPtPQBXkGADBs,23982
24
24
  valetudo_map_parser/hypfer_rooms_handler.py,sha256=NkpOA6Gdq-2D3lLAxvtNuuWMvPXHxeMY2TO5RZLSHlU,22652
25
- valetudo_map_parser/map_data.py,sha256=SNyNBCSoEaWslSV1d9fZd6B6BKGoStlq8wL-27F4aL0,25315
25
+ valetudo_map_parser/map_data.py,sha256=EN9zQclFCrkJ28JIjGERapeGJ_ND_zs3C21Qt4XFBQc,25363
26
26
  valetudo_map_parser/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  valetudo_map_parser/rand256_handler.py,sha256=daaSQ5ktMUYMnYxJkjS75UdBchpXVZ58HIomwHBFivs,27651
28
28
  valetudo_map_parser/reimg_draw.py,sha256=XR5ISyyJE4F4Ss5chF1ORmGZtwTjy0ViYQsdNumbz80,12788
29
29
  valetudo_map_parser/rooms_handler.py,sha256=ovqQtAjauAqwUNPR0aX27P2zhheQmqfaFhDE3_AwYWk,17821
30
- valetudo_map_parser-0.1.10b2.dist-info/LICENSE,sha256=Lh-qBbuRV0-jiCIBhfV7NgdwFxQFOXH3BKOzK865hRs,10480
31
- valetudo_map_parser-0.1.10b2.dist-info/METADATA,sha256=vhUWpKORonJRGeIqc7iBgT2JaRykfg1-r-JKajrf6wk,3321
32
- valetudo_map_parser-0.1.10b2.dist-info/NOTICE.txt,sha256=5lTOuWiU9aiEnJ2go8sc7lTJ7ntMBx0g0GFnNrswCY4,2533
33
- valetudo_map_parser-0.1.10b2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
34
- valetudo_map_parser-0.1.10b2.dist-info/RECORD,,
30
+ valetudo_map_parser-0.1.10b3.dist-info/LICENSE,sha256=Lh-qBbuRV0-jiCIBhfV7NgdwFxQFOXH3BKOzK865hRs,10480
31
+ valetudo_map_parser-0.1.10b3.dist-info/METADATA,sha256=u9UlGHgJco9t15A9A74CC7n3JND3C72UuxwjaeC-4Bo,3321
32
+ valetudo_map_parser-0.1.10b3.dist-info/NOTICE.txt,sha256=5lTOuWiU9aiEnJ2go8sc7lTJ7ntMBx0g0GFnNrswCY4,2533
33
+ valetudo_map_parser-0.1.10b3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
34
+ valetudo_map_parser-0.1.10b3.dist-info/RECORD,,