python-roborock 2.1.0__tar.gz → 2.2.0__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 (28) hide show
  1. {python_roborock-2.1.0 → python_roborock-2.2.0}/PKG-INFO +1 -1
  2. {python_roborock-2.1.0 → python_roborock-2.2.0}/pyproject.toml +1 -1
  3. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/api.py +2 -2
  4. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/version_1_apis/roborock_client_v1.py +2 -0
  5. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/version_1_apis/roborock_mqtt_client_v1.py +1 -1
  6. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/version_a01_apis/roborock_client_a01.py +3 -1
  7. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/version_a01_apis/roborock_mqtt_client_a01.py +3 -1
  8. {python_roborock-2.1.0 → python_roborock-2.2.0}/LICENSE +0 -0
  9. {python_roborock-2.1.0 → python_roborock-2.2.0}/README.md +0 -0
  10. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/__init__.py +0 -0
  11. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/cli.py +0 -0
  12. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/cloud_api.py +0 -0
  13. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/code_mappings.py +0 -0
  14. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/command_cache.py +0 -0
  15. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/const.py +0 -0
  16. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/containers.py +0 -0
  17. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/exceptions.py +0 -0
  18. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/local_api.py +0 -0
  19. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/protocol.py +0 -0
  20. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/py.typed +0 -0
  21. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/roborock_future.py +0 -0
  22. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/roborock_message.py +0 -0
  23. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/roborock_typing.py +0 -0
  24. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/util.py +0 -0
  25. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/version_1_apis/__init__.py +0 -0
  26. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/version_1_apis/roborock_local_client_v1.py +0 -0
  27. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/version_a01_apis/__init__.py +0 -0
  28. {python_roborock-2.1.0 → python_roborock-2.2.0}/roborock/web_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-roborock
3
- Version: 2.1.0
3
+ Version: 2.2.0
4
4
  Summary: A package to control Roborock vacuums.
5
5
  Home-page: https://github.com/humbertogontijo/python-roborock
6
6
  License: GPL-3.0-only
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "python-roborock"
3
- version = "2.1.0"
3
+ version = "2.2.0"
4
4
  description = "A package to control Roborock vacuums."
5
5
  authors = ["humbertogontijo <humbertogontijo@users.noreply.github.com>"]
6
6
  license = "GPL-3.0-only"
@@ -49,10 +49,10 @@ class RoborockClient:
49
49
  def __del__(self) -> None:
50
50
  self.release()
51
51
 
52
- def release(self):
52
+ def release(self) -> None:
53
53
  self.sync_disconnect()
54
54
 
55
- async def async_release(self):
55
+ async def async_release(self) -> None:
56
56
  await self.async_disconnect()
57
57
 
58
58
  @property
@@ -277,6 +277,8 @@ class RoborockClientV1(RoborockClient):
277
277
  """Gets the mapping from segment id -> iot id. Only works on local api."""
278
278
  mapping: list = await self.send_command(RoborockCommand.GET_ROOM_MAPPING)
279
279
  if isinstance(mapping, list):
280
+ if not isinstance(mapping[0], list) and len(mapping) == 2:
281
+ return [RoomMapping(segment_id=mapping[0], iot_id=mapping[1])]
280
282
  return [
281
283
  RoomMapping(segment_id=segment_id, iot_id=iot_id) # type: ignore
282
284
  for segment_id, iot_id in [unpack_list(room, 2) for room in mapping if isinstance(room, list)]
@@ -71,5 +71,5 @@ class RoborockMqttClientV1(RoborockMqttClient, RoborockClientV1):
71
71
  roborock_message = RoborockMessage(timestamp=timestamp, protocol=request_protocol, payload=payload)
72
72
  return await self.send_message(roborock_message)
73
73
 
74
- async def get_map_v1(self):
74
+ async def get_map_v1(self) -> bytes | None:
75
75
  return await self.send_command(RoborockCommand.GET_MAP_V1)
@@ -137,6 +137,8 @@ class RoborockClientA01(RoborockClient):
137
137
  if queue and queue.protocol == protocol:
138
138
  queue.resolve((converted_response, None))
139
139
 
140
- async def update_values(self, dyad_data_protocols: list[RoborockDyadDataProtocol | RoborockZeoProtocol]):
140
+ async def update_values(
141
+ self, dyad_data_protocols: list[RoborockDyadDataProtocol | RoborockZeoProtocol]
142
+ ) -> dict[RoborockDyadDataProtocol | RoborockZeoProtocol, typing.Any]:
141
143
  """This should handle updating for each given protocol."""
142
144
  raise NotImplementedError
@@ -57,7 +57,9 @@ class RoborockMqttClientA01(RoborockMqttClient, RoborockClientA01):
57
57
  dps_responses[dps] = response[0]
58
58
  return dps_responses
59
59
 
60
- async def update_values(self, dyad_data_protocols: list[RoborockDyadDataProtocol | RoborockZeoProtocol]):
60
+ async def update_values(
61
+ self, dyad_data_protocols: list[RoborockDyadDataProtocol | RoborockZeoProtocol]
62
+ ) -> dict[RoborockDyadDataProtocol | RoborockZeoProtocol, typing.Any]:
61
63
  payload = {"dps": {RoborockDyadDataProtocol.ID_QUERY: str([int(protocol) for protocol in dyad_data_protocols])}}
62
64
  return await self.send_message(
63
65
  RoborockMessage(
File without changes