1818import io
1919import zlib
2020from dataclasses import dataclass , field
21+ from typing import Any
2122
2223from Crypto .Cipher import AES
2324from Crypto .Util .Padding import pad , unpad
@@ -184,7 +185,7 @@ def _decode_b01_map_payload(raw_payload: bytes, *, serial: str, model: str) -> b
184185 raise RoborockException ("Failed to decode B01 map payload" ) from err
185186
186187
187- def _parse_proto (blob : bytes , message : object , * , context : str ) -> None :
188+ def _parse_proto (blob : bytes , message : Any , * , context : str ) -> None :
188189 try :
189190 message .ParseFromString (blob )
190191 except DecodeError as err :
@@ -198,14 +199,14 @@ def _decode_map_data_bytes(value: bytes) -> bytes:
198199 return value
199200
200201
201- def _parse_sc_point (parsed : b01_scmap_pb2 . DevicePointInfo ) -> _ScPoint :
202+ def _parse_sc_point (parsed : Any ) -> _ScPoint :
202203 return _ScPoint (
203204 x = parsed .x if parsed .HasField ("x" ) else None ,
204205 y = parsed .y if parsed .HasField ("y" ) else None ,
205206 )
206207
207208
208- def _parse_sc_map_boundary_info (parsed : b01_scmap_pb2 . MapBoundaryInfo ) -> _ScMapBoundaryInfo :
209+ def _parse_sc_map_boundary_info (parsed : Any ) -> _ScMapBoundaryInfo :
209210 return _ScMapBoundaryInfo (
210211 map_md5 = parsed .mapMd5 if parsed .HasField ("mapMd5" ) else None ,
211212 v_min_x = parsed .vMinX if parsed .HasField ("vMinX" ) else None ,
@@ -215,7 +216,7 @@ def _parse_sc_map_boundary_info(parsed: b01_scmap_pb2.MapBoundaryInfo) -> _ScMap
215216 )
216217
217218
218- def _parse_sc_map_ext_info (parsed : b01_scmap_pb2 . MapExtInfo ) -> _ScMapExtInfo :
219+ def _parse_sc_map_ext_info (parsed : Any ) -> _ScMapExtInfo :
219220 return _ScMapExtInfo (
220221 task_begin_date = parsed .taskBeginDate if parsed .HasField ("taskBeginDate" ) else None ,
221222 map_upload_date = parsed .mapUploadDate if parsed .HasField ("mapUploadDate" ) else None ,
@@ -229,7 +230,7 @@ def _parse_sc_map_ext_info(parsed: b01_scmap_pb2.MapExtInfo) -> _ScMapExtInfo:
229230 )
230231
231232
232- def _parse_sc_map_head (parsed : b01_scmap_pb2 . MapHeadInfo ) -> _ScMapHead :
233+ def _parse_sc_map_head (parsed : Any ) -> _ScMapHead :
233234 return _ScMapHead (
234235 map_head_id = parsed .mapHeadId if parsed .HasField ("mapHeadId" ) else None ,
235236 size_x = parsed .sizeX if parsed .HasField ("sizeX" ) else None ,
@@ -242,7 +243,7 @@ def _parse_sc_map_head(parsed: b01_scmap_pb2.MapHeadInfo) -> _ScMapHead:
242243 )
243244
244245
245- def _parse_sc_room_data (parsed : b01_scmap_pb2 . RoomDataInfo ) -> _ScRoomData :
246+ def _parse_sc_room_data (parsed : Any ) -> _ScRoomData :
246247 return _ScRoomData (
247248 room_id = parsed .roomId if parsed .HasField ("roomId" ) else None ,
248249 room_name = parsed .roomName if parsed .HasField ("roomName" ) else None ,
@@ -260,7 +261,7 @@ def _parse_sc_room_data(parsed: b01_scmap_pb2.RoomDataInfo) -> _ScRoomData:
260261
261262def _parse_scmap_payload (payload : bytes ) -> _ScMapPayload :
262263 """Parse inflated SCMap bytes into typed map metadata."""
263- parsed = b01_scmap_pb2 . RobotMap ()
264+ parsed : Any = getattr ( b01_scmap_pb2 , " RobotMap" ) ()
264265 _parse_proto (payload , parsed , context = "B01 SCMap" )
265266
266267 map_data = None
0 commit comments