python-roborock 7.4.1__py3-none-any.whl → 7.4.2__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,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: python-roborock
3
- Version: 7.4.1
3
+ Version: 7.4.2
4
4
  Summary: A package to control Roborock vacuums.
5
5
  Project-URL: Repository, https://github.com/python-roborock/python-roborock
6
6
  Project-URL: Documentation, https://python-roborock.readthedocs.io/
@@ -104,7 +104,7 @@ roborock/map/b01_map_parser.py,sha256=tTeeWH4fA4Pv4DvqN7PBQs92DuWTaD2rvD44Mo_t3O
104
104
  roborock/map/b01_q10_map_parser.py,sha256=EQMx2ZNVjHKsmKr6vR8JS7o86IZu85dNg3bKi5S0ZYw,29985
105
105
  roborock/map/b01_q10_overlays.py,sha256=JmriUbT4-oe6NiE94VttMplFc1HHQrAGNQIiZHj5QKk,6640
106
106
  roborock/map/b01_q10_render.py,sha256=b7YUBr53WXxOJhXbfb5IVmgi82iGcC0lJ_j9Ef3kV7M,13502
107
- roborock/map/map_parser.py,sha256=2Rse_VhC2HEfjO2aXw7p-QhYN3NLl9JoRbxqxGGPR64,7275
107
+ roborock/map/map_parser.py,sha256=EcJcz9yld_wu7d5QrmxR2BTfJ801F6SaEgJkbIIap4w,5111
108
108
  roborock/map/room_colors.py,sha256=5Q85oR_7xsUyzHYGOJPuzsZ6LQSCpJwfxfWql1v6T1E,2152
109
109
  roborock/map/proto/__init__.py,sha256=XcH_s-E67_hcQNwqSkdtY7DgYE0mRBBJwctzsf8zng4,60
110
110
  roborock/map/proto/b01_scmap.proto,sha256=ux1OnI_-LSDOlTujCCUeOJrTsVCvjLAUKfyddu-rH5U,1929
@@ -125,8 +125,8 @@ roborock/testing/channel.py,sha256=vjulT5MHBe8lAq6XITUqcxJVcCILWx7ZEcw5imTx0Tk,7
125
125
  roborock/testing/cloud.py,sha256=L2L0KlZDYaMuoV19KUQUoq5EAUDeNQ1lJ8Ew5YaOgjo,11946
126
126
  roborock/testing/simulator.py,sha256=g8ZUWVSjgAzuRRxWOCeOq-7deodyEItwUpqEw9RzCmQ,4347
127
127
  roborock/testing/v1_simulator.py,sha256=TQ2PsRoP_4kJvVn-Tm532ByHuaCKltsVjvTa2Ju4PAo,14407
128
- python_roborock-7.4.1.dist-info/METADATA,sha256=rB0hTcmV3i3rR3cSxnW-Jy1Pzc9QsV9pFBsM2FZdaS4,5278
129
- python_roborock-7.4.1.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
130
- python_roborock-7.4.1.dist-info/entry_points.txt,sha256=EvC1nMqi9ZXKgZnqlNXA33v_3nzgPNjnM0mzWlrehnY,47
131
- python_roborock-7.4.1.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
132
- python_roborock-7.4.1.dist-info/RECORD,,
128
+ python_roborock-7.4.2.dist-info/METADATA,sha256=2EEnCpez1BS4kd3YAaXGO1fxAZ4y6tBwQ54lzvnB4UI,5278
129
+ python_roborock-7.4.2.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
130
+ python_roborock-7.4.2.dist-info/entry_points.txt,sha256=EvC1nMqi9ZXKgZnqlNXA33v_3nzgPNjnM0mzWlrehnY,47
131
+ python_roborock-7.4.2.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
132
+ python_roborock-7.4.2.dist-info/RECORD,,
@@ -2,7 +2,6 @@
2
2
 
3
3
  import io
4
4
  import logging
5
- import threading
6
5
  from dataclasses import dataclass, field
7
6
 
8
7
  from vacuum_map_parser_base.config.color import Color, ColorsPalette, SupportedColor
@@ -11,13 +10,10 @@ from vacuum_map_parser_base.config.image_config import ImageConfig
11
10
  from vacuum_map_parser_base.config.size import Size, Sizes
12
11
  from vacuum_map_parser_base.image_generator import ImageGenerator
13
12
  from vacuum_map_parser_base.map_data import MapData
14
- from vacuum_map_parser_roborock.image_parser import RoborockImageParser
15
13
  from vacuum_map_parser_roborock.map_data_parser import RoborockMapDataParser
16
14
 
17
15
  from roborock.exceptions import RoborockException
18
16
 
19
- from .room_colors import adjacency_aware_room_colors
20
-
21
17
  _LOGGER = logging.getLogger(__name__)
22
18
 
23
19
  DEFAULT_DRAWABLES = {
@@ -103,68 +99,16 @@ class MapParser:
103
99
  return ParsedMapData(image_content=img_byte_arr.getvalue(), map_data=parsed_map)
104
100
 
105
101
 
106
- class _AdjacencyAwareRoborockImageParser(RoborockImageParser):
107
- """Apply the shared adjacency color policy to V1 room cells."""
108
-
109
- def __init__(
110
- self,
111
- palette: ColorsPalette,
112
- image_config: ImageConfig,
113
- *,
114
- recolor_rooms: bool = True,
115
- ) -> None:
116
- super().__init__(palette, image_config)
117
- self._room_palette = palette
118
- self._base_room_colors = palette.cached_room_colors.copy()
119
- self._recolor_rooms = recolor_rooms
120
- self._palette_lock = threading.Lock()
121
-
122
- def parse(
123
- self,
124
- raw_data: bytes,
125
- width: int,
126
- height: int,
127
- carpet_map: set[int] | None,
128
- removed_map: set[int] | None = None,
129
- ):
130
- """Assign non-conflicting room colors before the V1 image pass."""
131
- with self._palette_lock:
132
- # cached_room_colors is a read-only property, so reset its dict in place.
133
- cached_room_colors = self._room_palette.cached_room_colors
134
- cached_room_colors.clear()
135
- cached_room_colors.update(self._base_room_colors)
136
-
137
- if self._recolor_rooms:
138
-
139
- def room_id(value: int) -> int | None:
140
- if value in (self.MAP_OUTSIDE, self.MAP_WALL, self.MAP_INSIDE, self.MAP_SCAN):
141
- return None
142
- return self._get_room_number(value) if value & 0x07 == 0x07 else None
143
-
144
- room_colors = adjacency_aware_room_colors(raw_data, width, self._room_palette, room_id)
145
- for number, color in room_colors.items():
146
- # ColorsPalette caches both forms for get_room_color(str | int).
147
- cached_room_colors[number] = color
148
- cached_room_colors[str(number)] = color
149
- return super().parse(raw_data, width, height, carpet_map, removed_map)
150
-
151
-
152
102
  def _create_map_data_parser(config: MapParserConfig) -> RoborockMapDataParser:
153
103
  """Create a RoborockMapDataParser based on the config entry."""
154
104
  palette, sizes, image_config = _create_rendering_components(config)
155
- parser = RoborockMapDataParser(
105
+ return RoborockMapDataParser(
156
106
  palette,
157
107
  sizes,
158
108
  config.drawables,
159
109
  image_config,
160
110
  [],
161
111
  )
162
- parser._image_parser = _AdjacencyAwareRoborockImageParser(
163
- palette,
164
- image_config,
165
- recolor_rooms=config.show_rooms,
166
- )
167
- return parser
168
112
 
169
113
 
170
114
  def _create_image_generator(