valetudo-map-parser 0.1.11b1__py3-none-any.whl → 0.1.11b2__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.
@@ -40,6 +40,7 @@ from .types import (
40
40
  CONF_VAC_STAT_SIZE,
41
41
  CONF_ZOOM_LOCK_RATIO,
42
42
  DEFAULT_VALUES,
43
+ NOT_STREAMING_STATES,
43
44
  CameraModes,
44
45
  Colors,
45
46
  PilPNG,
@@ -119,10 +120,17 @@ class CameraShared:
119
120
  self.trims = TrimsData.from_dict(DEFAULT_VALUES["trims_data"])
120
121
  self.skip_room_ids: List[str] = []
121
122
  self.device_info = None
123
+ self._battery_state = None
122
124
 
123
125
  def vacuum_bat_charged(self) -> bool:
124
126
  """Check if the vacuum is charging."""
125
- return (self.vacuum_state == "docked") and (int(self.vacuum_battery) < 100)
127
+ if self.vacuum_state != "docked":
128
+ self._battery_state = "not_charging"
129
+ elif (self._battery_state == "charging_done") and (int(self.vacuum_battery) == 100):
130
+ self._battery_state = "charged"
131
+ else:
132
+ self._battery_state = "charging" if int(self.vacuum_battery) < 100 else "charging_done"
133
+ return (self.vacuum_state == "docked") and (self._battery_state == "charging")
126
134
 
127
135
  @staticmethod
128
136
  def _compose_obstacle_links(vacuum_host_ip: str, obstacles: list) -> list | None:
@@ -209,17 +217,25 @@ class CameraShared:
209
217
 
210
218
  return attrs
211
219
 
220
+ def is_streaming(self) -> bool:
221
+ """Return true if the device is streaming."""
222
+ updated_status = self.vacuum_state
223
+ attr_is_streaming = ((updated_status not in NOT_STREAMING_STATES
224
+ or self.vacuum_bat_charged())
225
+ or not self.binary_image)
226
+ return attr_is_streaming
227
+
212
228
  def to_dict(self) -> dict:
213
229
  """Return a dictionary with image and attributes data."""
214
-
215
- return {
230
+ data = {
216
231
  "image": {
217
232
  "binary": self.binary_image,
218
- "pil_image": self.new_image,
219
233
  "size": pil_size_rotation(self.image_rotate, self.new_image),
234
+ "streaming": self.is_streaming()
220
235
  },
221
236
  "attributes": self.generate_attributes(),
222
237
  }
238
+ return data
223
239
 
224
240
 
225
241
  class CameraSharedManager:
@@ -177,13 +177,11 @@ class BaseHandler:
177
177
  LOGGER.warning(
178
178
  "%s: Failed to generate image from JSON data", self.file_name
179
179
  )
180
- if bytes_format and hasattr(self.shared, "last_image"):
181
- return pil_to_png_bytes(self.shared.last_image), {}
182
180
  return (
183
181
  self.shared.last_image
184
182
  if hasattr(self.shared, "last_image")
185
183
  else None
186
- ), {}
184
+ ), self.shared.to_dict()
187
185
 
188
186
  except Exception as e:
189
187
  LOGGER.warning(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: valetudo-map-parser
3
- Version: 0.1.11b1
3
+ Version: 0.1.11b2
4
4
  Summary: A Python library to parse Valetudo map data returning a PIL Image object.
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -13,11 +13,11 @@ valetudo_map_parser/config/fonts/NotoSansCJKhk-VF.ttf,sha256=xIXXLKCJzmWoPEg8Hdv
13
13
  valetudo_map_parser/config/fonts/NotoSansKhojki.ttf,sha256=XJWzSmpN-Ql6jTfTvFojP_JkCHOztQvixQc1_7hPWrc,107388
14
14
  valetudo_map_parser/config/optimized_element_map.py,sha256=52BCnkvVv9bre52LeVIfT8nhnEIpc0TuWTv1xcNu0Rk,15744
15
15
  valetudo_map_parser/config/rand256_parser.py,sha256=UZ0UlcNIjDhMpImA_2jSei0HeLftpb9fLDwzliJJpz8,21161
16
- valetudo_map_parser/config/shared.py,sha256=PyP3IpgrztOM9B-qjNDHKcQL1_No_rAbPhvfuQJXOBE,11829
16
+ valetudo_map_parser/config/shared.py,sha256=JbCxW7ZKneHUbCfpaQbxeechv90qNmsl4nudFx9yTwc,12619
17
17
  valetudo_map_parser/config/status_text/status_text.py,sha256=29E8b3adl_Rr_BH8-J35ia2cOS716sPzVk_cezFiWQ4,4053
18
18
  valetudo_map_parser/config/status_text/translations.py,sha256=mmPbJkl_2A59w49wnesQf3ocXqwZxBsrqNX-yt5FSCQ,9132
19
19
  valetudo_map_parser/config/types.py,sha256=rYdqOsUX9dtre8M7s8o1S5Ag8Ixvab13Stpk3Hfw_54,18027
20
- valetudo_map_parser/config/utils.py,sha256=IP64VqYW_oWGAxSXexGHtLGaHTn7r4eICd0JGZDqG9A,35696
20
+ valetudo_map_parser/config/utils.py,sha256=VIrZHnBzP1U0k_atWKpa1baujIXox1tevc44X_95jbk,35571
21
21
  valetudo_map_parser/hypfer_draw.py,sha256=0-ZBCZw9H7G5Mu2cukTdOfbu83tZPL2cTdzPjRXzZsQ,22422
22
22
  valetudo_map_parser/hypfer_handler.py,sha256=O2eR4nNbmEkcDc-5EcWCKHLMOQGeQBMAdpClEM1fGnI,20446
23
23
  valetudo_map_parser/map_data.py,sha256=1-kxE82o8BfaJojYrD0LXoUAgCNpD6d50yLGc4w7ZWc,27433
@@ -25,8 +25,8 @@ valetudo_map_parser/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
25
25
  valetudo_map_parser/rand256_handler.py,sha256=z7ofWheIy7UvC120rvhP1nNjWdW9JqCIqnGV3T5OoNs,23048
26
26
  valetudo_map_parser/reimg_draw.py,sha256=Pwm_QUHiJd4o657qr-mlsWQ_TtGCBB-ucsA84t-IwOg,12474
27
27
  valetudo_map_parser/rooms_handler.py,sha256=ZbSdxG-uwoskYBbzN5zzAqK_lTtrNrcpjZmCVmxFWpw,17364
28
- valetudo_map_parser-0.1.11b1.dist-info/METADATA,sha256=YyvgIGxYawa9mD6hJ0wWOoChSED2xO3Dh8W4VJmrS2I,3403
29
- valetudo_map_parser-0.1.11b1.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
30
- valetudo_map_parser-0.1.11b1.dist-info/licenses/LICENSE,sha256=Lh-qBbuRV0-jiCIBhfV7NgdwFxQFOXH3BKOzK865hRs,10480
31
- valetudo_map_parser-0.1.11b1.dist-info/licenses/NOTICE.txt,sha256=5lTOuWiU9aiEnJ2go8sc7lTJ7ntMBx0g0GFnNrswCY4,2533
32
- valetudo_map_parser-0.1.11b1.dist-info/RECORD,,
28
+ valetudo_map_parser-0.1.11b2.dist-info/METADATA,sha256=cZwOtk_YoUwND904B25Zc_Beei4wrsCEDBAy_eHT9vQ,3403
29
+ valetudo_map_parser-0.1.11b2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
30
+ valetudo_map_parser-0.1.11b2.dist-info/licenses/LICENSE,sha256=Lh-qBbuRV0-jiCIBhfV7NgdwFxQFOXH3BKOzK865hRs,10480
31
+ valetudo_map_parser-0.1.11b2.dist-info/licenses/NOTICE.txt,sha256=5lTOuWiU9aiEnJ2go8sc7lTJ7ntMBx0g0GFnNrswCY4,2533
32
+ valetudo_map_parser-0.1.11b2.dist-info/RECORD,,