pymammotion 0.5.31__tar.gz → 0.5.33__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 (136) hide show
  1. {pymammotion-0.5.31 → pymammotion-0.5.33}/PKG-INFO +1 -1
  2. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/cloud_gateway.py +8 -0
  3. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/devices/base.py +0 -2
  4. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/devices/mammotion_bluetooth.py +1 -0
  5. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/devices/mammotion_cloud.py +5 -0
  6. {pymammotion-0.5.31 → pymammotion-0.5.33}/pyproject.toml +2 -2
  7. {pymammotion-0.5.31 → pymammotion-0.5.33}/LICENSE +0 -0
  8. {pymammotion-0.5.31 → pymammotion-0.5.33}/README.md +0 -0
  9. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/__init__.py +0 -0
  10. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/__init__.py +0 -0
  11. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/client.py +0 -0
  12. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/model/aep_response.py +0 -0
  13. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/model/connect_response.py +0 -0
  14. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  15. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  16. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/model/regions_response.py +0 -0
  17. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  18. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/model/thing_response.py +0 -0
  19. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/regions.py +0 -0
  20. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/tea/core.py +0 -0
  21. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/aliyun/tmp_constant.py +0 -0
  22. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/__init__.py +0 -0
  23. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/ble.py +0 -0
  24. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/ble_message.py +0 -0
  25. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/const.py +0 -0
  26. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/data/__init__.py +0 -0
  27. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/data/convert.py +0 -0
  28. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  29. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/data/notifydata.py +0 -0
  30. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/model/__init__.py +0 -0
  31. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/bluetooth/model/atomic_integer.py +0 -0
  32. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/const.py +0 -0
  33. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/__init__.py +0 -0
  34. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/__init__.py +0 -0
  35. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/account.py +0 -0
  36. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/device.py +0 -0
  37. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/device_config.py +0 -0
  38. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/device_info.py +0 -0
  39. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/device_limits.py +0 -0
  40. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/enums.py +0 -0
  41. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/errors.py +0 -0
  42. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/excute_boarder_params.py +0 -0
  43. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/execute_boarder.py +0 -0
  44. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/generate_route_information.py +0 -0
  45. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/hash_list.py +0 -0
  46. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/location.py +0 -0
  47. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/mowing_modes.py +0 -0
  48. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/rapid_state.py +0 -0
  49. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/raw_data.py +0 -0
  50. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/region_data.py +0 -0
  51. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/report_info.py +0 -0
  52. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/model/work.py +0 -0
  53. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/mqtt/__init__.py +0 -0
  54. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/mqtt/event.py +0 -0
  55. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/mqtt/properties.py +0 -0
  56. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/mqtt/status.py +0 -0
  57. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/data/state_manager.py +0 -0
  58. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/event/__init__.py +0 -0
  59. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/event/event.py +0 -0
  60. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/http/__init__.py +0 -0
  61. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/http/_init_.py +0 -0
  62. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/http/encryption.py +0 -0
  63. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/http/http.py +0 -0
  64. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/http/model/__init__.py +0 -0
  65. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/http/model/camera_stream.py +0 -0
  66. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/http/model/http.py +0 -0
  67. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/http/model/response_factory.py +0 -0
  68. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/http/model/rtk.py +0 -0
  69. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/__init__.py +0 -0
  70. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/__init__.py +0 -0
  71. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  72. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  73. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  74. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/messages/basestation.py +0 -0
  75. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  76. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/messages/media.py +0 -0
  77. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  78. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/messages/network.py +0 -0
  79. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  80. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/messages/system.py +0 -0
  81. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/commands/messages/video.py +0 -0
  82. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/control/__init__.py +0 -0
  83. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/control/joystick.py +0 -0
  84. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/devices/__init__.py +0 -0
  85. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mammotion/devices/mammotion.py +0 -0
  86. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mqtt/__init__.py +0 -0
  87. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mqtt/linkkit/__init__.py +0 -0
  88. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mqtt/linkkit/h2client.py +0 -0
  89. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mqtt/linkkit/linkkit.py +0 -0
  90. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mqtt/mammotion_future.py +0 -0
  91. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  92. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/__init__.py +0 -0
  93. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/basestation.proto +0 -0
  94. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/basestation_pb2.py +0 -0
  95. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/basestation_pb2.pyi +0 -0
  96. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/common.proto +0 -0
  97. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/common_pb2.py +0 -0
  98. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/common_pb2.pyi +0 -0
  99. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/dev_net.proto +0 -0
  100. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/dev_net_pb2.py +0 -0
  101. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  102. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/luba_msg.proto +0 -0
  103. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/luba_msg_pb2.py +0 -0
  104. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  105. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/luba_mul.proto +0 -0
  106. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/luba_mul_pb2.py +0 -0
  107. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  108. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_driver.proto +0 -0
  109. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  110. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  111. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_nav.proto +0 -0
  112. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  113. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  114. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_ota.proto +0 -0
  115. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  116. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  117. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_pept.proto +0 -0
  118. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  119. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  120. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_sys.proto +0 -0
  121. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  122. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  123. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/message_pool.py +0 -0
  124. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/proto/py.typed +0 -0
  125. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/py.typed +0 -0
  126. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/constant/__init__.py +0 -0
  127. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/constant/device_constant.py +0 -0
  128. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/conversions.py +0 -0
  129. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/datatype_converter.py +0 -0
  130. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/device_config.py +0 -0
  131. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/device_type.py +0 -0
  132. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/map.py +0 -0
  133. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/movement.py +0 -0
  134. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/mur_mur_hash.py +0 -0
  135. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/periodic.py +0 -0
  136. {pymammotion-0.5.31 → pymammotion-0.5.33}/pymammotion/utility/rocker_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pymammotion
3
- Version: 0.5.31
3
+ Version: 0.5.33
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
@@ -600,6 +600,10 @@ class CloudIOTGateway:
600
600
  await self.sign_out()
601
601
  raise CheckSessionException("Error check or refresh token: " + response_body_dict.__str__())
602
602
 
603
+ if response_body_dict.get("code") == 2401:
604
+ await self.sign_out()
605
+ raise CheckSessionException("Error check or refresh token: " + response_body_dict.__str__())
606
+
603
607
  session = SessionByAuthCodeResponse.from_dict(response_body_dict)
604
608
  session_data = session.data
605
609
 
@@ -803,6 +807,10 @@ class CloudIOTGateway:
803
807
  if response_body_dict.get("code") == 6205:
804
808
  raise DeviceOfflineException(response_body_dict.get("code"), iot_id)
805
809
 
810
+ if response_body_dict.get("code") == 460:
811
+ logger.debug("iotToken expired, must re-login.")
812
+ raise CheckSessionException(response_body_dict.get("message"))
813
+
806
814
  if self.message_delay != 1:
807
815
  self.message_delay = 1
808
816
 
@@ -1,7 +1,6 @@
1
1
  from abc import abstractmethod
2
2
  import asyncio
3
3
  import logging
4
- import time
5
4
  from typing import Any
6
5
 
7
6
  import betterproto2
@@ -43,7 +42,6 @@ class MammotionBaseDevice:
43
42
  self._raw_mower_data: RawMowerData = RawMowerData()
44
43
  self._notify_future: asyncio.Future[bytes] | None = None
45
44
  self._cloud_device = cloud_device
46
- self.command_sent_time: float = time.time()
47
45
 
48
46
  async def datahash_response(self, hash_ack: NavGetHashListAck) -> None:
49
47
  """Handle datahash responses for root level hashs."""
@@ -76,6 +76,7 @@ class MammotionBaseBLEDevice(MammotionBaseDevice):
76
76
  ) -> None:
77
77
  """Initialize MammotionBaseBLEDevice."""
78
78
  super().__init__(state_manager, cloud_device)
79
+ self.command_sent_time = 0
79
80
  self._disconnect_strategy = True
80
81
  self._ble_sync_task = None
81
82
  self._prev_notification = None
@@ -33,6 +33,7 @@ class MammotionCloud:
33
33
  def __init__(self, mqtt_client: MammotionMQTT, cloud_client: CloudIOTGateway) -> None:
34
34
  """Initialize MammotionCloud."""
35
35
  self.cloud_client = cloud_client
36
+ self.command_sent_time = 0
36
37
  self.loop = asyncio.get_event_loop()
37
38
  self.is_ready = False
38
39
  self.command_queue = asyncio.Queue()
@@ -212,6 +213,10 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
212
213
  """Cleanup."""
213
214
  self._state_manager.cloud_queue_command_callback.remove_subscribers(self.queue_command)
214
215
 
216
+ @property
217
+ def command_sent_time(self) -> float:
218
+ return self._mqtt.command_sent_time
219
+
215
220
  def set_notification_callback(self, func: Callable[[tuple[str, Any | None]], Awaitable[None]]) -> None:
216
221
  self._state_manager.cloud_on_notification_callback.add_subscribers(func)
217
222
 
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "pymammotion"
7
- version = "0.5.31"
7
+ version = "0.5.33"
8
8
  license = "GPL-3.0"
9
9
  description = ""
10
10
  readme = "README.md"
@@ -67,7 +67,7 @@ autotyping = "^24.3.0"
67
67
  ipython = "^9.0.2"
68
68
 
69
69
  [tool.bumpver]
70
- current_version = "0.5.31"
70
+ current_version = "0.5.33"
71
71
  version_pattern = "MAJOR.MINOR.PATCH"
72
72
  commit_message = "Bump version {old_version} -> {new_version}"
73
73
  commit = true
File without changes
File without changes