pymammotion 0.4.28__tar.gz → 0.4.30__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.28 → pymammotion-0.4.30}/PKG-INFO +2 -2
  2. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/device_config.py +1 -1
  3. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/http/http.py +2 -2
  4. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/messages/driver.py +6 -6
  5. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/messages/system.py +1 -1
  6. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/utility/device_type.py +8 -2
  7. {pymammotion-0.4.28 → pymammotion-0.4.30}/pyproject.toml +4 -4
  8. {pymammotion-0.4.28 → pymammotion-0.4.30}/LICENSE +0 -0
  9. {pymammotion-0.4.28 → pymammotion-0.4.30}/README.md +0 -0
  10. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/__init__.py +0 -0
  11. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/__init__.py +0 -0
  12. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/client.py +0 -0
  13. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/cloud_gateway.py +0 -0
  14. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/model/aep_response.py +0 -0
  15. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/model/connect_response.py +0 -0
  16. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  17. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  18. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/model/regions_response.py +0 -0
  19. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  20. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  21. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/regions.py +0 -0
  22. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/tea/core.py +0 -0
  23. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/aliyun/tmp_constant.py +0 -0
  24. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/__init__.py +0 -0
  25. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/ble.py +0 -0
  26. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/ble_message.py +0 -0
  27. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/const.py +0 -0
  28. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/data/__init__.py +0 -0
  29. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/data/convert.py +0 -0
  30. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  31. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/data/notifydata.py +0 -0
  32. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/model/__init__.py +0 -0
  33. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/bluetooth/model/atomic_integer.py +0 -0
  34. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/const.py +0 -0
  35. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/__init__.py +0 -0
  36. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/__init__.py +0 -0
  37. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/account.py +0 -0
  38. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/device.py +0 -0
  39. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/device_info.py +0 -0
  40. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/device_limits.py +0 -0
  41. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/enums.py +0 -0
  42. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/excute_boarder_params.py +0 -0
  43. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/execute_boarder.py +0 -0
  44. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/generate_route_information.py +0 -0
  45. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/hash_list.py +0 -0
  46. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/location.py +0 -0
  47. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/mowing_modes.py +0 -0
  48. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/plan.py +0 -0
  49. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/rapid_state.py +0 -0
  50. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/raw_data.py +0 -0
  51. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/region_data.py +0 -0
  52. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/model/report_info.py +0 -0
  53. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/mqtt/__init__.py +0 -0
  54. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/mqtt/event.py +0 -0
  55. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/mqtt/properties.py +0 -0
  56. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/mqtt/status.py +0 -0
  57. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/data/state_manager.py +0 -0
  58. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/event/__init__.py +0 -0
  59. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/event/event.py +0 -0
  60. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/http/_init_.py +0 -0
  61. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/http/encryption.py +0 -0
  62. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/http/model/http.py +0 -0
  63. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/__init__.py +0 -0
  64. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/__init__.py +0 -0
  65. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  66. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  67. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  68. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/messages/media.py +0 -0
  69. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  70. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/messages/network.py +0 -0
  71. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  72. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/commands/messages/video.py +0 -0
  73. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/control/__init__.py +0 -0
  74. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/control/joystick.py +0 -0
  75. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/devices/__init__.py +0 -0
  76. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/devices/base.py +0 -0
  77. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/devices/mammotion.py +0 -0
  78. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/devices/mammotion_bluetooth.py +0 -0
  79. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mammotion/devices/mammotion_cloud.py +0 -0
  80. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mqtt/__init__.py +0 -0
  81. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mqtt/linkkit/__init__.py +0 -0
  82. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mqtt/linkkit/h2client.py +0 -0
  83. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mqtt/linkkit/linkkit.py +0 -0
  84. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mqtt/mammotion_future.py +0 -0
  85. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  86. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/__init__.py +0 -0
  87. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/basestation.proto +0 -0
  88. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/basestation_pb2.py +0 -0
  89. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/basestation_pb2.pyi +0 -0
  90. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/common.proto +0 -0
  91. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/common_pb2.py +0 -0
  92. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/common_pb2.pyi +0 -0
  93. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/dev_net.proto +0 -0
  94. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/dev_net_pb2.py +0 -0
  95. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  96. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/luba_msg.proto +0 -0
  97. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/luba_msg_pb2.py +0 -0
  98. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  99. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/luba_mul.proto +0 -0
  100. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/luba_mul_pb2.py +0 -0
  101. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  102. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_driver.proto +0 -0
  103. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  104. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  105. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_nav.proto +0 -0
  106. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  107. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  108. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_ota.proto +0 -0
  109. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  110. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  111. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_pept.proto +0 -0
  112. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  113. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  114. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_sys.proto +0 -0
  115. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  116. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  117. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/py.typed +0 -0
  118. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/utility/constant/__init__.py +0 -0
  119. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/utility/constant/device_constant.py +0 -0
  120. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/utility/conversions.py +0 -0
  121. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/utility/datatype_converter.py +0 -0
  122. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/utility/device_config.py +0 -0
  123. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/utility/map.py +0 -0
  124. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/utility/movement.py +0 -0
  125. {pymammotion-0.4.28 → pymammotion-0.4.30}/pymammotion/utility/periodic.py +0 -0
  126. {pymammotion-0.4.28 → pymammotion-0.4.30}/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.28
3
+ Version: 0.4.30
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.11
12
12
  Classifier: Programming Language :: Python :: 3.12
13
13
  Classifier: Programming Language :: Python :: 3.13
14
- Requires-Dist: aiohttp (>=3.11.18,<4.0.0)
14
+ Requires-Dist: aiohttp (>=3.9.1)
15
15
  Requires-Dist: alibabacloud-apigateway-util (>=0.0.2,<0.0.3)
16
16
  Requires-Dist: alibabacloud-iot-api-gateway (>=0.0.4,<0.0.5)
17
17
  Requires-Dist: alicloud-gateway-iot (>=1.0.0,<2.0.0)
@@ -45,7 +45,7 @@ def create_path_order(operation_mode: OperationSettings, device_name: str) -> st
45
45
  if DeviceType.is_yuka(device_name) and not DeviceType.is_yuka_mini(device_name):
46
46
  bArr[5] = calculate_yuka_mode(operation_mode)
47
47
  else:
48
- bArr[5] = 8 if DeviceType.is_luba_2(device_name) else 0
48
+ bArr[5] = 8 if DeviceType.is_luba_pro(device_name) else 0
49
49
 
50
50
  bArr[6] = int(operation_mode.collect_grass_frequency) if operation_mode.is_dump else 10
51
51
  if DeviceType.is_luba1(device_name):
@@ -138,12 +138,12 @@ class MammotionHTTP:
138
138
  ) as resp:
139
139
  if resp.status != 200:
140
140
  print(resp.json())
141
- return Response.from_dict({"status": resp.status, "msg": "Login failed"})
141
+ return Response.from_dict({"code": resp.status, "msg": "Login failed"})
142
142
  data = await resp.json()
143
143
  login_response = Response[LoginResponseData].from_dict(data)
144
144
  if login_response.data is None:
145
145
  print(login_response)
146
- return Response.from_dict({"status": resp.status, "msg": "Login failed"})
146
+ return Response.from_dict({"code": resp.status, "msg": "Login failed"})
147
147
  self.login_info = LoginResponseData.from_dict(login_response.data)
148
148
  self._headers["Authorization"] = (
149
149
  f"Bearer {self.login_info.access_token}" if login_response.data else None
@@ -35,24 +35,24 @@ class MessageDriver(AbstractMessage, ABC):
35
35
  driver=driver,
36
36
  ).SerializeToString()
37
37
 
38
- def set_blade_height(self, height: int):
38
+ def set_blade_height(self, height: int) -> bytes:
39
39
  logger.debug(f"Send knife height height={height}")
40
40
  build = MctlDriver(todev_knife_height_set=DrvKnifeHeight(knife_height=height))
41
41
  logger.debug(f"Send command--Knife motor height setting height={height}")
42
42
  return self.send_order_msg_driver(build)
43
43
 
44
- def set_speed(self, speed: float):
44
+ def set_speed(self, speed: float) -> bytes:
45
45
  logger.debug(f"{self.get_device_name()} set speed, {speed}")
46
46
  build = MctlDriver(bidire_speed_read_set=DrvSrSpeed(speed=speed, rw=1))
47
47
  logger.debug(f"Send command--Speed setting speed={speed}")
48
48
  return self.send_order_msg_driver(build)
49
49
 
50
- def syn_nav_star_point_data(self, sat_system: int):
50
+ def syn_nav_star_point_data(self, sat_system: int) -> bytes:
51
51
  build = MctlDriver(rtk_sys_mask_query=RtkSysMaskQueryT(sat_system=sat_system))
52
52
  logger.debug(f"Send command--Navigation satellite frequency point synchronization={sat_system}")
53
53
  return self.send_order_msg_driver(build)
54
54
 
55
- def set_nav_star_point(self, cmd_req: str):
55
+ def set_nav_star_point(self, cmd_req: str) -> bytes:
56
56
  build = MctlDriver(rtk_cfg_req=RtkCfgReqT(cmd_req=cmd_req, cmd_length=len(cmd_req) - 1))
57
57
  logger.debug(f"Send command--Navigation satellite frequency point setting={cmd_req}")
58
58
  logger.debug(
@@ -60,7 +60,7 @@ class MessageDriver(AbstractMessage, ABC):
60
60
  )
61
61
  return self.send_order_msg_driver(build)
62
62
 
63
- def get_speed(self):
63
+ def get_speed(self) -> bytes:
64
64
  build = MctlDriver(bidire_speed_read_set=DrvSrSpeed(rw=0))
65
65
  logger.debug("Send command--Get speed value")
66
66
  return self.send_order_msg_driver(build)
@@ -71,7 +71,7 @@ class MessageDriver(AbstractMessage, ABC):
71
71
  cut_knife_ctrl: int,
72
72
  cut_knife_height: int,
73
73
  max_run_speed: float,
74
- ):
74
+ ) -> bytes:
75
75
  build = MctlDriver(
76
76
  mow_ctrl_by_hand=DrvMowCtrlByHand(
77
77
  main_ctrl=main_ctrl,
@@ -121,7 +121,7 @@ class MessageSystem(AbstractMessage, ABC):
121
121
  def allpowerfull_rw(self, rw_id: int, context: int, rw: int) -> bytes:
122
122
  if (
123
123
  rw_id == 6 or rw_id == 3 or rw_id == 7 or rw_id == 8 or rw_id == 10 or rw_id == 11
124
- ) and DeviceType.is_luba_2(self.get_device_name()):
124
+ ) and DeviceType.is_luba_pro(self.get_device_name()):
125
125
  return self.messageNavigation.allpowerfull_rw_adapter_x3(rw_id, context, rw)
126
126
  build = MctlSys(bidire_comm_cmd=SysCommCmd(id=rw_id, context=context, rw=rw))
127
127
  logger.debug(f"Send command - 9 general read and write command id={rw_id}, context={context}, rw={rw}")
@@ -190,7 +190,7 @@ class DeviceType(Enum):
190
190
  return device_type.get_value() == DeviceType.LUBA.get_value()
191
191
 
192
192
  @staticmethod
193
- def is_luba_2(device_name: str, product_key: str = ""):
193
+ def is_luba_pro(device_name: str, product_key: str = ""):
194
194
  """Check if the device type is LUBA 2 or higher based on the device name
195
195
  and optional product key.
196
196
 
@@ -211,6 +211,7 @@ class DeviceType(Enum):
211
211
  return (
212
212
  device_type.get_value() >= DeviceType.LUBA_2.get_value()
213
213
  and device_type.get_value() != DeviceType.SPINO.get_value()
214
+ and not DeviceType.is_rtk(device_name, product_key)
214
215
  )
215
216
 
216
217
  @staticmethod
@@ -273,7 +274,12 @@ class DeviceType(Enum):
273
274
  else:
274
275
  device_type = DeviceType.value_of_str(device_name, product_key)
275
276
 
276
- return DeviceType.RTK.get_value() <= device_type.get_value() < DeviceType.LUBA.get_value()
277
+ return (
278
+ DeviceType.RTK.get_value() != device_type.get_value()
279
+ and DeviceType.RTK3A0.get_value() != device_type.get_value()
280
+ and DeviceType.RTK3A1.get_value() != device_type.get_value()
281
+ and DeviceType.RTK3A2.get_value() != device_type.get_value()
282
+ )
277
283
 
278
284
  @staticmethod
279
285
  def contain_rtk_product_key(product_key) -> bool:
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "pymammotion"
7
- version = "0.4.28"
7
+ version = "0.4.30"
8
8
  license = "GPL-3.0"
9
9
  description = ""
10
10
  readme = "README.md"
@@ -25,7 +25,7 @@ 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.11.18"
28
+ aiohttp = ">=3.9.1"
29
29
  paho-mqtt = "^2.1.0"
30
30
  alicloud-gateway-iot = "^1.0.0"
31
31
  alibabacloud-apigateway-util = "^0.0.2"
@@ -60,13 +60,13 @@ grpcio-tools = "^1.63.0"
60
60
  betterproto = {extras = ["compiler"], version = "^1.2.5"}
61
61
  pylint = "^3.2.2"
62
62
  ruff = "^0.9.3"
63
- pre-commit = "^3.8.0"
63
+ pre-commit = "^4.2.0"
64
64
  mypy = "^1.11.2"
65
65
  autotyping = "^24.3.0"
66
66
  ipython = "^9.0.2"
67
67
 
68
68
  [tool.bumpver]
69
- current_version = "0.4.28"
69
+ current_version = "0.4.30"
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