pymammotion 0.4.26__tar.gz → 0.4.28__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 (126) hide show
  1. {pymammotion-0.4.26 → pymammotion-0.4.28}/PKG-INFO +3 -2
  2. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/hash_list.py +2 -1
  3. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/state_manager.py +1 -1
  4. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/messages/video.py +1 -1
  5. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/devices/mammotion_cloud.py +3 -2
  6. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/constant/device_constant.py +13 -0
  7. {pymammotion-0.4.26 → pymammotion-0.4.28}/pyproject.toml +4 -4
  8. {pymammotion-0.4.26 → pymammotion-0.4.28}/LICENSE +0 -0
  9. {pymammotion-0.4.26 → pymammotion-0.4.28}/README.md +0 -0
  10. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/__init__.py +0 -0
  11. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/__init__.py +0 -0
  12. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/client.py +0 -0
  13. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/cloud_gateway.py +0 -0
  14. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/model/aep_response.py +0 -0
  15. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/model/connect_response.py +0 -0
  16. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  17. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  18. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/model/regions_response.py +0 -0
  19. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  20. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  21. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/regions.py +0 -0
  22. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/tea/core.py +0 -0
  23. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/aliyun/tmp_constant.py +0 -0
  24. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/__init__.py +0 -0
  25. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/ble.py +0 -0
  26. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/ble_message.py +0 -0
  27. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/const.py +0 -0
  28. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/data/__init__.py +0 -0
  29. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/data/convert.py +0 -0
  30. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  31. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/data/notifydata.py +0 -0
  32. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/model/__init__.py +0 -0
  33. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/bluetooth/model/atomic_integer.py +0 -0
  34. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/const.py +0 -0
  35. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/__init__.py +0 -0
  36. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/__init__.py +0 -0
  37. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/account.py +0 -0
  38. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/device.py +0 -0
  39. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/device_config.py +0 -0
  40. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/device_info.py +0 -0
  41. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/device_limits.py +0 -0
  42. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/enums.py +0 -0
  43. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/excute_boarder_params.py +0 -0
  44. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/execute_boarder.py +0 -0
  45. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/generate_route_information.py +0 -0
  46. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/location.py +0 -0
  47. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/mowing_modes.py +0 -0
  48. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/plan.py +0 -0
  49. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/rapid_state.py +0 -0
  50. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/raw_data.py +0 -0
  51. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/region_data.py +0 -0
  52. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/model/report_info.py +0 -0
  53. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/mqtt/__init__.py +0 -0
  54. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/mqtt/event.py +0 -0
  55. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/mqtt/properties.py +0 -0
  56. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/data/mqtt/status.py +0 -0
  57. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/event/__init__.py +0 -0
  58. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/event/event.py +0 -0
  59. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/http/_init_.py +0 -0
  60. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/http/encryption.py +0 -0
  61. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/http/http.py +0 -0
  62. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/http/model/http.py +0 -0
  63. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/__init__.py +0 -0
  64. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/__init__.py +0 -0
  65. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  66. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  67. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  68. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  69. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/messages/media.py +0 -0
  70. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  71. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/messages/network.py +0 -0
  72. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  73. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/commands/messages/system.py +0 -0
  74. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/control/__init__.py +0 -0
  75. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/control/joystick.py +0 -0
  76. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/devices/__init__.py +0 -0
  77. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/devices/base.py +0 -0
  78. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/devices/mammotion.py +0 -0
  79. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mammotion/devices/mammotion_bluetooth.py +0 -0
  80. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mqtt/__init__.py +0 -0
  81. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mqtt/linkkit/__init__.py +0 -0
  82. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mqtt/linkkit/h2client.py +0 -0
  83. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mqtt/linkkit/linkkit.py +0 -0
  84. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mqtt/mammotion_future.py +0 -0
  85. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  86. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/__init__.py +0 -0
  87. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/basestation.proto +0 -0
  88. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/basestation_pb2.py +0 -0
  89. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/basestation_pb2.pyi +0 -0
  90. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/common.proto +0 -0
  91. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/common_pb2.py +0 -0
  92. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/common_pb2.pyi +0 -0
  93. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/dev_net.proto +0 -0
  94. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/dev_net_pb2.py +0 -0
  95. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  96. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/luba_msg.proto +0 -0
  97. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/luba_msg_pb2.py +0 -0
  98. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  99. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/luba_mul.proto +0 -0
  100. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/luba_mul_pb2.py +0 -0
  101. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  102. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_driver.proto +0 -0
  103. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  104. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  105. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_nav.proto +0 -0
  106. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  107. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  108. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_ota.proto +0 -0
  109. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  110. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  111. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_pept.proto +0 -0
  112. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  113. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  114. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_sys.proto +0 -0
  115. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  116. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  117. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/py.typed +0 -0
  118. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/constant/__init__.py +0 -0
  119. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/conversions.py +0 -0
  120. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/datatype_converter.py +0 -0
  121. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/device_config.py +0 -0
  122. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/device_type.py +0 -0
  123. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/map.py +0 -0
  124. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/movement.py +0 -0
  125. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/periodic.py +0 -0
  126. {pymammotion-0.4.26 → pymammotion-0.4.28}/pymammotion/utility/rocker_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pymammotion
3
- Version: 0.4.26
3
+ Version: 0.4.28
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
@@ -10,7 +10,8 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.11
12
12
  Classifier: Programming Language :: Python :: 3.12
13
- Requires-Dist: aiohttp (>=3.9.1,<4.0.0)
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Requires-Dist: aiohttp (>=3.11.18,<4.0.0)
14
15
  Requires-Dist: alibabacloud-apigateway-util (>=0.0.2,<0.0.3)
15
16
  Requires-Dist: alibabacloud-iot-api-gateway (>=0.0.4,<0.0.5)
16
17
  Requires-Dist: alicloud-gateway-iot (>=1.0.0,<2.0.0)
@@ -280,7 +280,8 @@ class HashList(DataClassORJSONMixin):
280
280
  return []
281
281
 
282
282
  def update_plan(self, plan: Plan) -> None:
283
- self.plan[plan.plan_index] = plan
283
+ if plan.total_plan_num != 0:
284
+ self.plan[plan.plan_index] = plan
284
285
 
285
286
  def update(self, hash_data: NavGetCommData | SvgMessage) -> bool:
286
287
  """Update the map data."""
@@ -102,7 +102,7 @@ class StateManager:
102
102
 
103
103
  async def get_plan_callback(self, planjob: NavPlanJobSet) -> None:
104
104
  if self.cloud_get_plan_callback:
105
- await self.get_plan_callback(planjob)
105
+ await self.cloud_get_plan_callback(planjob)
106
106
  elif self.ble_get_plan_callback:
107
107
  await self.ble_get_plan_callback(planjob)
108
108
 
@@ -8,7 +8,7 @@ from pymammotion.utility.device_type import DeviceType
8
8
 
9
9
 
10
10
  class MessageVideo(AbstractMessage, ABC):
11
- async def send_order_msg_video(self, mul):
11
+ def send_order_msg_video(self, mul):
12
12
  luba_msg = LubaMsg(
13
13
  msgtype=MsgCmdType.MUL,
14
14
  msgattr=MsgAttr.REQ,
@@ -21,6 +21,7 @@ from pymammotion.event.event import DataEvent
21
21
  from pymammotion.mammotion.commands.mammotion_command import MammotionCommand
22
22
  from pymammotion.mammotion.devices.base import MammotionBaseDevice
23
23
  from pymammotion.proto import LubaMsg, has_field
24
+ from pymammotion.utility.constant.device_constant import NO_REQUEST_MODES
24
25
 
25
26
  _LOGGER = logging.getLogger(__name__)
26
27
 
@@ -228,13 +229,13 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
228
229
  # self.mqtt._mqtt_client.thing_on_thing_enable(None)
229
230
 
230
231
  async def _ble_sync(self) -> None:
231
- if self.stopped or self._mqtt.is_connected is False:
232
+ if self.stopped or self.mqtt.is_connected is False or self.state_manager.get_device().report_data.dev.sys_status in NO_REQUEST_MODES:
232
233
  return
233
234
 
234
235
  command_bytes = self._commands.send_todev_ble_sync(3)
235
236
  try:
236
237
  await self._mqtt.send_command(self.iot_id, command_bytes)
237
- except (CheckSessionException, SetupException):
238
+ except (CheckSessionException, SetupException, DeviceOfflineException):
238
239
  if self._ble_sync_task:
239
240
  self._ble_sync_task.cancel()
240
241
 
@@ -213,6 +213,19 @@ class WorkMode:
213
213
  MODE_CHARGING_PAUSE = 39
214
214
 
215
215
 
216
+ NO_REQUEST_MODES = (
217
+ WorkMode.MODE_JOB_DRAW,
218
+ WorkMode.MODE_OBSTACLE_DRAW,
219
+ WorkMode.MODE_CHANNEL_DRAW,
220
+ WorkMode.MODE_ERASER_DRAW,
221
+ WorkMode.MODE_UPDATING,
222
+ WorkMode.MODE_EDIT_BOUNDARY,
223
+ WorkMode.MODE_UPDATING,
224
+ WorkMode.MODE_LOCK,
225
+ WorkMode.MODE_MANUAL_MOWING,
226
+ )
227
+
228
+
216
229
  def device_connection(connect: ConnectData) -> str:
217
230
  """Return string representation of device connection."""
218
231
 
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "pymammotion"
7
- version = "0.4.26"
7
+ version = "0.4.28"
8
8
  license = "GPL-3.0"
9
9
  description = ""
10
10
  readme = "README.md"
@@ -21,11 +21,11 @@ packages = [{include = "pymammotion"}]
21
21
 
22
22
 
23
23
  [tool.poetry.dependencies]
24
- python = ">=3.11,<3.13"
24
+ python = ">=3.11,<3.14"
25
25
  bleak = ">=0.21.0"
26
26
  protobuf = ">=4.23.1"
27
27
  py-jsonic = "^0.0.2"
28
- aiohttp = "^3.9.1"
28
+ aiohttp = "^3.11.18"
29
29
  paho-mqtt = "^2.1.0"
30
30
  alicloud-gateway-iot = "^1.0.0"
31
31
  alibabacloud-apigateway-util = "^0.0.2"
@@ -66,7 +66,7 @@ autotyping = "^24.3.0"
66
66
  ipython = "^9.0.2"
67
67
 
68
68
  [tool.bumpver]
69
- current_version = "0.4.26"
69
+ current_version = "0.4.28"
70
70
  version_pattern = "MAJOR.MINOR.PATCH"
71
71
  commit_message = "Bump version {old_version} -> {new_version}"
72
72
  commit = true
File without changes
File without changes