pymammotion 0.2.84__tar.gz → 0.2.86__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 (125) hide show
  1. {pymammotion-0.2.84 → pymammotion-0.2.86}/PKG-INFO +1 -1
  2. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/event/event.py +4 -1
  3. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/devices/mammotion_cloud.py +17 -5
  4. {pymammotion-0.2.84 → pymammotion-0.2.86}/pyproject.toml +3 -3
  5. {pymammotion-0.2.84 → pymammotion-0.2.86}/LICENSE +0 -0
  6. {pymammotion-0.2.84 → pymammotion-0.2.86}/README.md +0 -0
  7. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/__init__.py +0 -0
  8. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/__init__.py +0 -0
  9. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/cloud_gateway.py +0 -0
  10. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/cloud_service.py +0 -0
  11. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/model/aep_response.py +0 -0
  12. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/model/connect_response.py +0 -0
  13. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  14. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  15. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/model/regions_response.py +0 -0
  16. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  17. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  18. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/aliyun/tmp_constant.py +0 -0
  19. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/bluetooth/__init__.py +0 -0
  20. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/bluetooth/ble.py +0 -0
  21. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/bluetooth/ble_message.py +0 -0
  22. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/bluetooth/const.py +0 -0
  23. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/bluetooth/data/__init__.py +0 -0
  24. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/bluetooth/data/convert.py +0 -0
  25. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  26. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/bluetooth/data/notifydata.py +0 -0
  27. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/const.py +0 -0
  28. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/__init__.py +0 -0
  29. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/__init__.py +0 -0
  30. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/account.py +0 -0
  31. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/device.py +0 -0
  32. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/device_config.py +0 -0
  33. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/device_info.py +0 -0
  34. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/enums.py +0 -0
  35. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/excute_boarder_params.py +0 -0
  36. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/execute_boarder.py +0 -0
  37. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/generate_route_information.py +0 -0
  38. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/hash_list.py +0 -0
  39. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/location.py +0 -0
  40. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/mowing_modes.py +0 -0
  41. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/plan.py +0 -0
  42. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/rapid_state.py +0 -0
  43. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/region_data.py +0 -0
  44. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/model/report_info.py +0 -0
  45. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/mqtt/__init__.py +0 -0
  46. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/mqtt/event.py +0 -0
  47. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/mqtt/properties.py +0 -0
  48. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/mqtt/status.py +0 -0
  49. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/data/state_manager.py +0 -0
  50. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/event/__init__.py +0 -0
  51. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/http/_init_.py +0 -0
  52. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/http/http.py +0 -0
  53. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/http/model/http.py +0 -0
  54. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/__init__.py +0 -0
  55. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/__init__.py +0 -0
  56. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  57. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  58. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  59. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  60. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/messages/media.py +0 -0
  61. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  62. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/messages/network.py +0 -0
  63. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  64. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/messages/system.py +0 -0
  65. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/commands/messages/video.py +0 -0
  66. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/control/__init__.py +0 -0
  67. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/control/joystick.py +0 -0
  68. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/devices/__init__.py +0 -0
  69. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/devices/base.py +0 -0
  70. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/devices/mammotion.py +0 -0
  71. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mammotion/devices/mammotion_bluetooth.py +0 -0
  72. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mqtt/__init__.py +0 -0
  73. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mqtt/mammotion_future.py +0 -0
  74. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  75. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/__init__.py +0 -0
  76. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/basestation.proto +0 -0
  77. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/basestation.py +0 -0
  78. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/basestation_pb2.py +0 -0
  79. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/basestation_pb2.pyi +0 -0
  80. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/common.proto +0 -0
  81. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/common.py +0 -0
  82. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/common_pb2.py +0 -0
  83. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/common_pb2.pyi +0 -0
  84. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/dev_net.proto +0 -0
  85. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/dev_net.py +0 -0
  86. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/dev_net_pb2.py +0 -0
  87. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  88. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/luba_msg.proto +0 -0
  89. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/luba_msg.py +0 -0
  90. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/luba_msg_pb2.py +0 -0
  91. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  92. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/luba_mul.proto +0 -0
  93. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/luba_mul.py +0 -0
  94. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/luba_mul_pb2.py +0 -0
  95. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  96. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_driver.proto +0 -0
  97. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_driver.py +0 -0
  98. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  99. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  100. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_nav.proto +0 -0
  101. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_nav.py +0 -0
  102. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  103. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  104. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_ota.proto +0 -0
  105. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_ota.py +0 -0
  106. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  107. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  108. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_pept.proto +0 -0
  109. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_pept.py +0 -0
  110. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  111. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  112. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_sys.proto +0 -0
  113. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_sys.py +0 -0
  114. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  115. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  116. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/py.typed +0 -0
  117. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/utility/constant/__init__.py +0 -0
  118. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/utility/constant/device_constant.py +0 -0
  119. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/utility/conversions.py +0 -0
  120. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/utility/datatype_converter.py +0 -0
  121. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/utility/device_type.py +0 -0
  122. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/utility/map.py +0 -0
  123. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/utility/movement.py +0 -0
  124. {pymammotion-0.2.84 → pymammotion-0.2.86}/pymammotion/utility/periodic.py +0 -0
  125. {pymammotion-0.2.84 → pymammotion-0.2.86}/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.84
3
+ Version: 0.2.86
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -66,4 +66,7 @@ class DataEvent:
66
66
  self.on_data_event += obj_method
67
67
 
68
68
  def remove_subscribers(self, obj_method) -> None:
69
- self.on_data_event -= obj_method
69
+ try:
70
+ self.on_data_event -= obj_method
71
+ except ValueError:
72
+ """Subscription object no longer there."""
@@ -37,6 +37,7 @@ class MammotionCloud:
37
37
  self.mqtt_properties_event = DataEvent()
38
38
  self.on_ready_event = DataEvent()
39
39
  self.on_disconnected_event = DataEvent()
40
+ self.on_connected_event = DataEvent()
40
41
  self._operation_lock = asyncio.Lock()
41
42
  self._mqtt_client = mqtt_client
42
43
  self._mqtt_client.on_connected = self.on_connected
@@ -66,6 +67,7 @@ class MammotionCloud:
66
67
 
67
68
  async def on_connected(self) -> None:
68
69
  """Callback for when MQTT connects."""
70
+ await self.on_connected_event.data_event(None)
69
71
 
70
72
  async def on_disconnected(self) -> None:
71
73
  """Callback for when MQTT disconnects."""
@@ -165,19 +167,26 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
165
167
  self._mqtt.mqtt_properties_event.add_subscribers(self._parse_message_properties_for_device)
166
168
  self._mqtt.on_ready_event.add_subscribers(self.on_ready)
167
169
  self._mqtt.on_disconnected_event.add_subscribers(self.on_disconnect)
170
+ self._mqtt.on_connected_event.add_subscribers(self.on_connect)
168
171
  self.set_queue_callback(self.queue_command)
169
172
 
170
173
  if self._mqtt.is_ready:
171
174
  self.run_periodic_sync_task()
172
175
 
176
+ def __del__(self):
177
+ self._mqtt.on_ready_event.remove_subscribers(self.on_ready)
178
+ self._mqtt.on_disconnected_event.remove_subscribers(self.on_disconnect)
179
+ self._mqtt.on_connected_event.remove_subscribers(self.on_connect)
180
+ self._mqtt.mqtt_message_event.remove_subscribers(self._parse_message_for_device)
181
+ if self._ble_sync_task:
182
+ self._ble_sync_task.cancel()
183
+
184
+
173
185
  async def on_ready(self) -> None:
174
186
  """Callback for when MQTT is subscribed to events."""
175
187
  if self.stopped:
176
188
  return
177
189
  try:
178
- await self._ble_sync()
179
- if self._ble_sync_task is None or self._ble_sync_task.cancelled():
180
- await self.run_periodic_sync_task()
181
190
  if self.on_ready_callback:
182
191
  await self.on_ready_callback()
183
192
  except DeviceOfflineException:
@@ -188,11 +197,15 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
188
197
  self._ble_sync_task.cancel()
189
198
  self._mqtt.disconnect()
190
199
 
200
+ async def on_connect(self) -> None:
201
+ await self._ble_sync()
202
+ if self._ble_sync_task is None or self._ble_sync_task.cancelled():
203
+ await self.run_periodic_sync_task()
204
+
191
205
  async def stop(self) -> None:
192
206
  """Stop all tasks and disconnect."""
193
207
  if self._ble_sync_task:
194
208
  self._ble_sync_task.cancel()
195
- self._mqtt.on_ready_event.remove_subscribers(self.on_ready)
196
209
  self.stopped = True
197
210
 
198
211
  async def start(self) -> None:
@@ -200,7 +213,6 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
200
213
  if self._ble_sync_task is None or self._ble_sync_task.cancelled():
201
214
  await self.run_periodic_sync_task()
202
215
  self.stopped = False
203
- self._mqtt.on_ready_event.add_subscribers(self.on_ready)
204
216
  if not self.mqtt.is_connected():
205
217
  self.mqtt.connect_async()
206
218
 
@@ -1,10 +1,10 @@
1
1
  [project]
2
2
  name = "pymammotion"
3
- version = "0.2.84"
3
+ version = "0.2.86"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "pymammotion"
7
- version = "0.2.84"
7
+ version = "0.2.86"
8
8
  license = "GNU-3.0"
9
9
  description = ""
10
10
  readme = "README.md"
@@ -61,7 +61,7 @@ mypy = "^1.11.2"
61
61
  autotyping = "^24.3.0"
62
62
 
63
63
  [tool.bumpver]
64
- current_version = "0.2.84"
64
+ current_version = "0.2.86"
65
65
  version_pattern = "MAJOR.MINOR.PATCH"
66
66
  commit_message = "Bump version {old_version} -> {new_version}"
67
67
  commit = true
File without changes
File without changes