pymammotion 0.2.95__tar.gz → 0.2.97__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.95 → pymammotion-0.2.97}/PKG-INFO +1 -1
  2. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/cloud_gateway.py +1 -1
  3. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/device.py +2 -0
  4. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/http/http.py +6 -4
  5. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/utility/constant/device_constant.py +20 -20
  6. {pymammotion-0.2.95 → pymammotion-0.2.97}/pyproject.toml +3 -3
  7. {pymammotion-0.2.95 → pymammotion-0.2.97}/LICENSE +0 -0
  8. {pymammotion-0.2.95 → pymammotion-0.2.97}/README.md +0 -0
  9. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/__init__.py +0 -0
  10. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/__init__.py +0 -0
  11. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/cloud_service.py +0 -0
  12. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/model/aep_response.py +0 -0
  13. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/model/connect_response.py +0 -0
  14. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  15. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  16. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/model/regions_response.py +0 -0
  17. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  18. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  19. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/aliyun/tmp_constant.py +0 -0
  20. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/bluetooth/__init__.py +0 -0
  21. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/bluetooth/ble.py +0 -0
  22. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/bluetooth/ble_message.py +0 -0
  23. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/bluetooth/const.py +0 -0
  24. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/bluetooth/data/__init__.py +0 -0
  25. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/bluetooth/data/convert.py +0 -0
  26. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  27. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/bluetooth/data/notifydata.py +0 -0
  28. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/const.py +0 -0
  29. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/__init__.py +0 -0
  30. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/__init__.py +0 -0
  31. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/account.py +0 -0
  32. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/device_config.py +0 -0
  33. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/device_info.py +0 -0
  34. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/enums.py +0 -0
  35. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/excute_boarder_params.py +0 -0
  36. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/execute_boarder.py +0 -0
  37. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/generate_route_information.py +0 -0
  38. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/hash_list.py +0 -0
  39. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/location.py +0 -0
  40. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/mowing_modes.py +0 -0
  41. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/plan.py +0 -0
  42. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/rapid_state.py +0 -0
  43. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/region_data.py +0 -0
  44. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/model/report_info.py +0 -0
  45. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/mqtt/__init__.py +0 -0
  46. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/mqtt/event.py +0 -0
  47. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/mqtt/properties.py +0 -0
  48. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/mqtt/status.py +0 -0
  49. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/data/state_manager.py +0 -0
  50. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/event/__init__.py +0 -0
  51. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/event/event.py +0 -0
  52. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/http/_init_.py +0 -0
  53. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/http/model/http.py +0 -0
  54. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/__init__.py +0 -0
  55. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/__init__.py +0 -0
  56. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  57. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  58. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  59. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  60. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/messages/media.py +0 -0
  61. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  62. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/messages/network.py +0 -0
  63. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  64. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/messages/system.py +0 -0
  65. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/commands/messages/video.py +0 -0
  66. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/control/__init__.py +0 -0
  67. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/control/joystick.py +0 -0
  68. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/devices/__init__.py +0 -0
  69. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/devices/base.py +0 -0
  70. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/devices/mammotion.py +0 -0
  71. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/devices/mammotion_bluetooth.py +0 -0
  72. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mammotion/devices/mammotion_cloud.py +0 -0
  73. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mqtt/__init__.py +0 -0
  74. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mqtt/mammotion_future.py +0 -0
  75. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  76. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/__init__.py +0 -0
  77. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/basestation.proto +0 -0
  78. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/basestation.py +0 -0
  79. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/basestation_pb2.py +0 -0
  80. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/basestation_pb2.pyi +0 -0
  81. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/common.proto +0 -0
  82. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/common.py +0 -0
  83. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/common_pb2.py +0 -0
  84. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/common_pb2.pyi +0 -0
  85. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/dev_net.proto +0 -0
  86. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/dev_net.py +0 -0
  87. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/dev_net_pb2.py +0 -0
  88. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  89. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/luba_msg.proto +0 -0
  90. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/luba_msg.py +0 -0
  91. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/luba_msg_pb2.py +0 -0
  92. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  93. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/luba_mul.proto +0 -0
  94. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/luba_mul.py +0 -0
  95. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/luba_mul_pb2.py +0 -0
  96. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  97. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_driver.proto +0 -0
  98. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_driver.py +0 -0
  99. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  100. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  101. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_nav.proto +0 -0
  102. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_nav.py +0 -0
  103. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  104. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  105. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_ota.proto +0 -0
  106. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_ota.py +0 -0
  107. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  108. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  109. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_pept.proto +0 -0
  110. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_pept.py +0 -0
  111. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  112. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  113. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_sys.proto +0 -0
  114. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_sys.py +0 -0
  115. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  116. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  117. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/py.typed +0 -0
  118. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/utility/constant/__init__.py +0 -0
  119. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/utility/conversions.py +0 -0
  120. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/utility/datatype_converter.py +0 -0
  121. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/utility/device_type.py +0 -0
  122. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/utility/map.py +0 -0
  123. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/utility/movement.py +0 -0
  124. {pymammotion-0.2.95 → pymammotion-0.2.97}/pymammotion/utility/periodic.py +0 -0
  125. {pymammotion-0.2.95 → pymammotion-0.2.97}/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.95
3
+ Version: 0.2.97
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -700,7 +700,7 @@ class CloudIOTGateway:
700
700
  def devices_by_account_response(self):
701
701
  return self._devices_by_account_response
702
702
 
703
- def set_http(self, mammotion_http) -> None:
703
+ def set_http(self, mammotion_http: MammotionHTTP) -> None:
704
704
  self.mammotion_http = mammotion_http
705
705
 
706
706
  @property
@@ -12,6 +12,7 @@ from pymammotion.data.model.device_info import MowerInfo
12
12
  from pymammotion.data.model.location import Location
13
13
  from pymammotion.data.model.report_info import ReportData
14
14
  from pymammotion.data.mqtt.properties import ThingPropertiesMessage
15
+ from pymammotion.http.model.http import ErrorInfo
15
16
  from pymammotion.proto.dev_net import DevNet
16
17
  from pymammotion.proto.luba_msg import LubaMsg
17
18
  from pymammotion.proto.luba_mul import SocMul
@@ -45,6 +46,7 @@ class MowingDevice(DataClassORJSONMixin):
45
46
  err_code_list_time: Optional[list] = field(default_factory=list)
46
47
  limits: DeviceLimits = field(default_factory=DeviceLimits)
47
48
  device: Optional[LubaMsg] = field(default_factory=LubaMsg)
49
+ error_codes: dict[str, ErrorInfo] = field(default_factory=dict)
48
50
 
49
51
  @classmethod
50
52
  def from_raw(cls, raw: dict) -> "MowingDevice":
@@ -18,10 +18,11 @@ class MammotionHTTP:
18
18
  self._headers = dict()
19
19
  self.login_info = LoginResponseData.from_dict(response.data) if response.data else None
20
20
  self._headers["Authorization"] = f"Bearer {self.login_info.access_token}" if response.data else None
21
+ self.response = response
21
22
  self.msg = response.msg
22
23
  self.code = response.code
23
24
 
24
- async def get_all_error_codes(self) -> list[ErrorInfo]:
25
+ async def get_all_error_codes(self) -> dict[str, ErrorInfo]:
25
26
  async with ClientSession(MAMMOTION_API_DOMAIN) as session:
26
27
  async with session.post(
27
28
  "/user-server/v1/code/record/export-data",
@@ -29,9 +30,10 @@ class MammotionHTTP:
29
30
  ) as resp:
30
31
  data = await resp.json()
31
32
  reader = csv.DictReader(data.get("data", "").split("\n"), delimiter=",")
32
- codes = []
33
+ codes = dict()
33
34
  for row in reader:
34
- codes.append(ErrorInfo(**cast(dict, row)))
35
+ error_info = ErrorInfo(**cast(dict, row))
36
+ codes[error_info.code] = error_info
35
37
  return codes
36
38
 
37
39
  async def oauth_check(self) -> None:
@@ -73,7 +75,7 @@ class MammotionHTTP:
73
75
  ),
74
76
  ) as resp:
75
77
  data = await resp.json()
76
- response = Response.from_dict(data)
78
+ response = Response[LoginResponseData].from_dict(data)
77
79
  # TODO catch errors from mismatch user / password elsewhere
78
80
  # Assuming the data format matches the expected structure
79
81
  return response
@@ -186,30 +186,29 @@ class SystemTardStateTunnel:
186
186
 
187
187
 
188
188
  class WorkMode:
189
- MODE_BOUNDARY_JUMP = 38
190
- MODE_CHANNEL_DRAW = 34
191
- MODE_CHARGING = 15
192
- MODE_DISABLE = 8
193
- MODE_EDIT_BOUNDARY = 36
194
- MODE_ERASER_DRAW = 35
195
- MODE_INITIALIZATION = 10
196
- MODE_JOB_DRAW = 31
197
- MODE_LOCATION_ERROR = 37
198
- MODE_LOCK = 17
199
- MODE_MANUAL_MOWING = 20
200
189
  MODE_NOT_ACTIVE = 0
201
- MODE_OBSTACLE_DRAW = 32
202
- MODE_OFFLINE = 2
203
190
  MODE_ONLINE = 1
204
- MODE_OTA_UPGRADE_FAIL = 23
205
- MODE_PATH_MODIFICATION = 35
206
- MODE_PAUSE = 19
191
+ MODE_OFFLINE = 2
192
+ MODE_DISABLE = 8
193
+ MODE_INITIALIZATION = 10
207
194
  MODE_READY = 11
195
+ MODE_WORKING = 13
208
196
  MODE_RETURNING = 14
209
- MODE_SECOND_EDIT = 36
210
- MODE_UPDATE_SUCCESS = 22
197
+ MODE_CHARGING = 15
211
198
  MODE_UPDATING = 16
212
- MODE_WORKING = 13
199
+ MODE_LOCK = 17
200
+ MODE_PAUSE = 19
201
+ MODE_MANUAL_MOWING = 20
202
+ MODE_UPDATE_SUCCESS = 22
203
+ MODE_OTA_UPGRADE_FAIL = 23
204
+ MODE_JOB_DRAW = 31
205
+ MODE_OBSTACLE_DRAW = 32
206
+ MODE_CHANNEL_DRAW = 34
207
+ MODE_ERASER_DRAW = 35
208
+ MODE_EDIT_BOUNDARY = 36
209
+ MODE_LOCATION_ERROR = 37
210
+ MODE_BOUNDARY_JUMP = 38
211
+ MODE_CHARGING_PAUSE = 39
213
212
 
214
213
 
215
214
  def device_connection(value: int, mnet_type: str) -> str:
@@ -262,6 +261,7 @@ def device_mode(value: int) -> str:
262
261
  36: "MODE_EDIT_BOUNDARY",
263
262
  37: "MODE_LOCATION_ERROR",
264
263
  38: "MODE_BOUNDARY_JUMP",
264
+ 39: "MODE_CHARGING_PAUSE",
265
265
  }
266
266
  return modes.get(value, "Invalid mode")
267
267
 
@@ -272,7 +272,7 @@ class PosType(IntEnum):
272
272
  AREA_BORDER_ON = 7
273
273
  AREA_INSIDE = 1
274
274
  AREA_OUT = 0
275
- CHANNAL_AREA_OVERLAP = 9
275
+ CHANNEL_AREA_OVERLAP = 9
276
276
  CHANNEL_ON = 3
277
277
  CHARGE_ON = 5
278
278
  DUMPING_AREA_INSIDE = 8
@@ -1,10 +1,10 @@
1
1
  [project]
2
2
  name = "pymammotion"
3
- version = "0.2.95"
3
+ version = "0.2.97"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "pymammotion"
7
- version = "0.2.95"
7
+ version = "0.2.97"
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.95"
64
+ current_version = "0.2.97"
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