pymammotion 0.2.15__tar.gz → 0.2.17__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.

Potentially problematic release.


This version of pymammotion might be problematic. Click here for more details.

Files changed (117) hide show
  1. {pymammotion-0.2.15 → pymammotion-0.2.17}/PKG-INFO +1 -1
  2. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/cloud_gateway.py +10 -3
  3. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/state_manager.py +4 -0
  4. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/devices/mammotion.py +5 -2
  5. {pymammotion-0.2.15 → pymammotion-0.2.17}/pyproject.toml +3 -3
  6. {pymammotion-0.2.15 → pymammotion-0.2.17}/LICENSE +0 -0
  7. {pymammotion-0.2.15 → pymammotion-0.2.17}/README.md +0 -0
  8. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/__init__.py +0 -0
  9. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/__init__.py +0 -0
  10. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/cloud_service.py +0 -0
  11. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/dataclass/aep_response.py +0 -0
  12. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/dataclass/connect_response.py +0 -0
  13. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/dataclass/dev_by_account_response.py +0 -0
  14. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/dataclass/login_by_oauth_response.py +0 -0
  15. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/dataclass/regions_response.py +0 -0
  16. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/dataclass/session_by_authcode_response.py +0 -0
  17. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/aliyun/tmp_constant.py +0 -0
  18. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/bluetooth/__init__.py +0 -0
  19. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/bluetooth/ble.py +0 -0
  20. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/bluetooth/ble_message.py +0 -0
  21. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/bluetooth/const.py +0 -0
  22. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/bluetooth/data/__init__.py +0 -0
  23. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/bluetooth/data/convert.py +0 -0
  24. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  25. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/bluetooth/data/notifydata.py +0 -0
  26. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/const.py +0 -0
  27. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/__init__.py +0 -0
  28. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/__init__.py +0 -0
  29. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/account.py +0 -0
  30. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/device.py +0 -0
  31. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/device_config.py +0 -0
  32. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/enums.py +0 -0
  33. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/excute_boarder_params.py +0 -0
  34. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/execute_boarder.py +0 -0
  35. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/generate_route_information.py +0 -0
  36. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/hash_list.py +0 -0
  37. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/location.py +0 -0
  38. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/mowing_modes.py +0 -0
  39. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/plan.py +0 -0
  40. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/rapid_state.py +0 -0
  41. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/region_data.py +0 -0
  42. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/model/report_info.py +0 -0
  43. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/mqtt/__init__.py +0 -0
  44. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/mqtt/event.py +0 -0
  45. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/mqtt/properties.py +0 -0
  46. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/data/mqtt/status.py +0 -0
  47. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/event/__init__.py +0 -0
  48. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/event/event.py +0 -0
  49. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/http/_init_.py +0 -0
  50. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/http/http.py +0 -0
  51. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/__init__.py +0 -0
  52. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/__init__.py +0 -0
  53. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  54. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  55. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  56. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  57. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/messages/media.py +0 -0
  58. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  59. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/messages/network.py +0 -0
  60. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  61. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/messages/system.py +0 -0
  62. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/commands/messages/video.py +0 -0
  63. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/control/__init__.py +0 -0
  64. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/control/joystick.py +0 -0
  65. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mammotion/devices/__init__.py +0 -0
  66. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mqtt/__init__.py +0 -0
  67. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mqtt/mammotion_future.py +0 -0
  68. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  69. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/__init__.py +0 -0
  70. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/basestation.proto +0 -0
  71. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/basestation.py +0 -0
  72. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/basestation_pb2.py +0 -0
  73. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/basestation_pb2.pyi +0 -0
  74. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/common.proto +0 -0
  75. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/common.py +0 -0
  76. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/common_pb2.py +0 -0
  77. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/common_pb2.pyi +0 -0
  78. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/dev_net.proto +0 -0
  79. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/dev_net.py +0 -0
  80. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/dev_net_pb2.py +0 -0
  81. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  82. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/luba_msg.proto +0 -0
  83. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/luba_msg.py +0 -0
  84. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/luba_msg_pb2.py +0 -0
  85. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  86. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/luba_mul.proto +0 -0
  87. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/luba_mul.py +0 -0
  88. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/luba_mul_pb2.py +0 -0
  89. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  90. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_driver.proto +0 -0
  91. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_driver.py +0 -0
  92. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  93. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  94. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_nav.proto +0 -0
  95. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_nav.py +0 -0
  96. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  97. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  98. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_ota.proto +0 -0
  99. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_ota.py +0 -0
  100. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  101. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  102. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_pept.proto +0 -0
  103. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_pept.py +0 -0
  104. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  105. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  106. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_sys.proto +0 -0
  107. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_sys.py +0 -0
  108. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  109. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  110. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/py.typed +0 -0
  111. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/utility/constant/__init__.py +0 -0
  112. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/utility/constant/device_constant.py +0 -0
  113. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/utility/datatype_converter.py +0 -0
  114. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/utility/device_type.py +0 -0
  115. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/utility/map.py +0 -0
  116. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/utility/periodic.py +0 -0
  117. {pymammotion-0.2.15 → pymammotion-0.2.17}/pymammotion/utility/rocker_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymammotion
3
- Version: 0.2.15
3
+ Version: 0.2.17
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -55,6 +55,8 @@ class AuthRefreshException(Exception):
55
55
  class DeviceOfflineException(Exception):
56
56
  """Raise exception when device is offline."""
57
57
 
58
+ class LoginException(Exception):
59
+ """Raise exception when library cannot log in."""
58
60
 
59
61
  class CloudIOTGateway:
60
62
  """Class for interacting with Aliyun Cloud IoT Gateway."""
@@ -303,8 +305,11 @@ class CloudIOTGateway:
303
305
  params={"request": json.dumps(_bodyParam, separators=(",", ":"))},
304
306
  ) as resp:
305
307
  data = await resp.json()
306
- self._connect_response = ConnectResponse.from_dict(data)
307
308
  logger.debug(data)
309
+ if resp.status == 200:
310
+ self._connect_response = ConnectResponse.from_dict(data)
311
+ return self._connect_response
312
+ raise LoginException(data)
308
313
 
309
314
  async def login_by_oauth(self, country_code: str, auth_code: str):
310
315
  """Login by OAuth."""
@@ -372,8 +377,10 @@ class CloudIOTGateway:
372
377
  ) as resp:
373
378
  data = await resp.json()
374
379
  logger.debug(data)
375
-
376
- self._login_by_oauth_response = LoginByOAuthResponse.from_dict(data)
380
+ if resp.status == 200:
381
+ self._login_by_oauth_response = LoginByOAuthResponse.from_dict(data)
382
+ return self._login_by_oauth_response
383
+ raise LoginException(data)
377
384
 
378
385
  def session_by_auth_code(self):
379
386
  """Create a session by auth code."""
@@ -17,6 +17,7 @@ class StateManager:
17
17
  self._device = device
18
18
  self.gethash_ack_callback: Optional[Callable[[NavGetHashListAck],Awaitable[None]]] = None
19
19
  self.get_commondata_ack_callback: Optional[Callable[[NavGetCommDataAck],Awaitable[None]]] = None
20
+ self.on_notification_callback: Optional[Callable[[],Awaitable[None]]] = None
20
21
 
21
22
  def get_device(self) -> MowingDevice:
22
23
  """Get device."""
@@ -44,6 +45,9 @@ class StateManager:
44
45
  case "ota":
45
46
  self._update_ota_data(message)
46
47
 
48
+ if self.on_notification_callback:
49
+ await self.on_notification_callback()
50
+
47
51
  async def _update_nav_data(self, message):
48
52
  """Update nav data."""
49
53
  nav_msg = betterproto.which_one_of(message.nav, "SubNavMsg")
@@ -346,6 +346,9 @@ class MammotionBaseDevice:
346
346
  self._notify_future: asyncio.Future[bytes] | None = None
347
347
  self._cloud_device = cloud_device
348
348
 
349
+ def set_notifiction_callback(self, func: Callable[[],Awaitable[None]]):
350
+ self._state_manager.on_notification_callback = func
351
+
349
352
  async def datahash_response(self, hash_ack: NavGetHashListAck):
350
353
  """Handle datahash responses."""
351
354
  result_hash = 0
@@ -1150,7 +1153,7 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
1150
1153
  if isinstance(params, str):
1151
1154
  _LOGGER.debug("config event %s", str)
1152
1155
  return
1153
- if params.identifier == "device_protobuf_msg_event" and params.thingType == "thing.events":
1156
+ if params.identifier == "device_protobuf_msg_event" and event.method == "thing.events":
1154
1157
  _LOGGER.debug("Protobuf event")
1155
1158
  binary_data = base64.b64decode(params.value.get("content", ""))
1156
1159
  self._update_raw_data(cast(bytes, binary_data))
@@ -1171,7 +1174,7 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
1171
1174
  if not fut.fut.cancelled():
1172
1175
  fut.resolve(cast(bytes, binary_data))
1173
1176
  await self._state_manager.notification(new_msg)
1174
- if params.thingType == "thing.properties":
1177
+ if event.method == "thing.properties":
1175
1178
  _LOGGER.debug(event)
1176
1179
 
1177
1180
  async def _handle_mqtt_message(self, topic: str, payload: dict) -> None:
@@ -1,10 +1,10 @@
1
1
  [project]
2
2
  name = "pymammotion"
3
- version = "0.2.15"
3
+ version = "0.2.17"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "pymammotion"
7
- version = "0.2.15"
7
+ version = "0.2.17"
8
8
  license = "GNU-3.0"
9
9
  description = ""
10
10
  readme = "README.md"
@@ -53,7 +53,7 @@ mypy = "^1.10.0"
53
53
  pre-commit = "^3.7.1"
54
54
 
55
55
  [tool.bumpver]
56
- current_version = "0.2.15"
56
+ current_version = "0.2.17"
57
57
  version_pattern = "MAJOR.MINOR.PATCH"
58
58
  commit_message = "Bump version {old_version} -> {new_version}"
59
59
  commit = true
File without changes
File without changes