pymammotion 0.4.8__tar.gz → 0.4.10__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 (123) hide show
  1. {pymammotion-0.4.8 → pymammotion-0.4.10}/PKG-INFO +1 -1
  2. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/cloud_gateway.py +20 -3
  3. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/mowing_modes.py +7 -0
  4. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/report_info.py +1 -1
  5. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/mqtt/status.py +1 -1
  6. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/devices/mammotion_cloud.py +7 -2
  7. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mqtt/mammotion_mqtt.py +25 -0
  8. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_nav.proto +1 -1
  9. {pymammotion-0.4.8 → pymammotion-0.4.10}/pyproject.toml +2 -2
  10. {pymammotion-0.4.8 → pymammotion-0.4.10}/LICENSE +0 -0
  11. {pymammotion-0.4.8 → pymammotion-0.4.10}/README.md +0 -0
  12. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/__init__.py +0 -0
  13. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/__init__.py +0 -0
  14. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/model/aep_response.py +0 -0
  15. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/model/connect_response.py +0 -0
  16. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  17. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  18. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/model/regions_response.py +0 -0
  19. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  20. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  21. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/aliyun/tmp_constant.py +0 -0
  22. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/__init__.py +0 -0
  23. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/ble.py +0 -0
  24. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/ble_message.py +0 -0
  25. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/const.py +0 -0
  26. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/data/__init__.py +0 -0
  27. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/data/convert.py +0 -0
  28. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  29. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/data/notifydata.py +0 -0
  30. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/model/__init__.py +0 -0
  31. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/bluetooth/model/atomic_integer.py +0 -0
  32. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/const.py +0 -0
  33. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/__init__.py +0 -0
  34. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/__init__.py +0 -0
  35. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/account.py +0 -0
  36. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/device.py +0 -0
  37. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/device_config.py +0 -0
  38. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/device_info.py +0 -0
  39. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/device_limits.py +0 -0
  40. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/enums.py +0 -0
  41. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/excute_boarder_params.py +0 -0
  42. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/execute_boarder.py +0 -0
  43. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/generate_route_information.py +0 -0
  44. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/hash_list.py +0 -0
  45. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/location.py +0 -0
  46. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/plan.py +0 -0
  47. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/rapid_state.py +0 -0
  48. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/raw_data.py +0 -0
  49. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/model/region_data.py +0 -0
  50. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/mqtt/__init__.py +0 -0
  51. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/mqtt/event.py +0 -0
  52. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/mqtt/properties.py +0 -0
  53. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/data/state_manager.py +0 -0
  54. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/event/__init__.py +0 -0
  55. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/event/event.py +0 -0
  56. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/http/_init_.py +0 -0
  57. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/http/encryption.py +0 -0
  58. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/http/http.py +0 -0
  59. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/http/model/http.py +0 -0
  60. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/__init__.py +0 -0
  61. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/__init__.py +0 -0
  62. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  63. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  64. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  65. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  66. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/media.py +0 -0
  67. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  68. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/network.py +0 -0
  69. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  70. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/system.py +0 -0
  71. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/video.py +0 -0
  72. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/control/__init__.py +0 -0
  73. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/control/joystick.py +0 -0
  74. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/devices/__init__.py +0 -0
  75. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/devices/base.py +0 -0
  76. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/devices/mammotion.py +0 -0
  77. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mammotion/devices/mammotion_bluetooth.py +0 -0
  78. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mqtt/__init__.py +0 -0
  79. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mqtt/linkkit/__init__.py +0 -0
  80. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mqtt/linkkit/h2client.py +0 -0
  81. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mqtt/linkkit/linkkit.py +0 -0
  82. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/mqtt/mammotion_future.py +0 -0
  83. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/__init__.py +0 -0
  84. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/basestation.proto +0 -0
  85. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/basestation_pb2.py +0 -0
  86. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/basestation_pb2.pyi +0 -0
  87. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/common.proto +0 -0
  88. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/common_pb2.py +0 -0
  89. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/common_pb2.pyi +0 -0
  90. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/dev_net.proto +0 -0
  91. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/dev_net_pb2.py +0 -0
  92. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  93. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/luba_msg.proto +0 -0
  94. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/luba_msg_pb2.py +0 -0
  95. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  96. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/luba_mul.proto +0 -0
  97. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/luba_mul_pb2.py +0 -0
  98. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  99. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_driver.proto +0 -0
  100. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  101. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  102. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  103. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  104. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_ota.proto +0 -0
  105. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  106. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  107. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_pept.proto +0 -0
  108. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  109. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  110. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_sys.proto +0 -0
  111. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  112. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  113. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/py.typed +0 -0
  114. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/utility/constant/__init__.py +0 -0
  115. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/utility/constant/device_constant.py +0 -0
  116. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/utility/conversions.py +0 -0
  117. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/utility/datatype_converter.py +0 -0
  118. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/utility/device_config.py +0 -0
  119. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/utility/device_type.py +0 -0
  120. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/utility/map.py +0 -0
  121. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/utility/movement.py +0 -0
  122. {pymammotion-0.4.8 → pymammotion-0.4.10}/pymammotion/utility/periodic.py +0 -0
  123. {pymammotion-0.4.8 → pymammotion-0.4.10}/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.8
3
+ Version: 0.4.10
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
@@ -16,6 +16,7 @@ from alibabacloud_iot_api_gateway.client import Client
16
16
  from alibabacloud_iot_api_gateway.models import CommonParams, Config, IoTApiRequest
17
17
  from alibabacloud_tea_util.client import Client as UtilClient
18
18
  from alibabacloud_tea_util.models import RuntimeOptions
19
+ from Tea.exceptions import UnretryableException
19
20
 
20
21
  from pymammotion.aliyun.model.aep_response import AepResponse
21
22
  from pymammotion.aliyun.model.connect_response import ConnectResponse
@@ -45,6 +46,10 @@ MOVE_HEADERS = (
45
46
  class SetupException(Exception):
46
47
  """Raise when mqtt expires token or token is invalid."""
47
48
 
49
+ def __init__(self, *args: object) -> None:
50
+ super().__init__(args)
51
+ self.iot_id = args[1]
52
+
48
53
 
49
54
  class AuthRefreshException(Exception):
50
55
  """Raise exception when library cannot refresh token."""
@@ -53,10 +58,22 @@ class AuthRefreshException(Exception):
53
58
  class DeviceOfflineException(Exception):
54
59
  """Raise exception when device is offline."""
55
60
 
61
+ def __init__(self, *args: object) -> None:
62
+ super().__init__(args)
63
+ self.iot_id = args[1]
64
+
65
+
66
+ class NoConnectionException(UnretryableException):
67
+ """Raise exception when device is unreachable."""
68
+
56
69
 
57
70
  class GatewayTimeoutException(Exception):
58
71
  """Raise exception when the gateway times out."""
59
72
 
73
+ def __init__(self, *args: object) -> None:
74
+ super().__init__(args)
75
+ self.iot_id = args[1]
76
+
60
77
 
61
78
  class LoginException(Exception):
62
79
  """Raise exception when library cannot log in."""
@@ -691,14 +708,14 @@ class CloudIOTGateway:
691
708
  )
692
709
  if response_body_dict.get("code") == 20056:
693
710
  logger.debug("Gateway timeout.")
694
- raise GatewayTimeoutException(response_body_dict.get("code"))
711
+ raise GatewayTimeoutException(response_body_dict.get("code"), iot_id)
695
712
 
696
713
  if response_body_dict.get("code") == 29003:
697
714
  logger.debug(self._session_by_authcode_response.data.identityId)
698
715
  self.sign_out()
699
- raise SetupException(response_body_dict.get("code"))
716
+ raise SetupException(response_body_dict.get("code"), iot_id)
700
717
  if response_body_dict.get("code") == 6205:
701
- raise DeviceOfflineException(response_body_dict.get("code"))
718
+ raise DeviceOfflineException(response_body_dict.get("code"), iot_id)
702
719
 
703
720
  return message_id
704
721
 
@@ -44,6 +44,13 @@ class TraversalMode(IntEnum):
44
44
  follow_perimeter = 1
45
45
 
46
46
 
47
+ class TurningMode(IntEnum):
48
+ """Turning mode on corners."""
49
+
50
+ multipoint = 0
51
+ zero_turn = 1
52
+
53
+
47
54
  class DetectionStrategy(IntEnum):
48
55
  """Matches up with ultra_wave."""
49
56
 
@@ -140,6 +140,6 @@ class ReportData(DataClassORJSONMixin):
140
140
  self.dev = DeviceData.from_dict(data.get("dev", self.dev.to_dict()))
141
141
  self.rtk = RTKData.from_dict(data.get("rtk", self.rtk.to_dict()))
142
142
  self.maintenance = Maintain.from_dict(data.get("maintain", self.maintenance.to_dict()))
143
- self.vision_info = VisionInfo.from_dict(data.get("vio_to_app_info", VisionInfo(0, 0, 0, 0, 0, 0, 0).to_dict()))
143
+ self.vision_info = VisionInfo.from_dict(data.get("vio_to_app_info", VisionInfo().to_dict()))
144
144
  self.locations = locations
145
145
  self.work = WorkData.from_dict(data.get("work", self.work.to_dict()))
@@ -8,7 +8,7 @@ from mashumaro.mixins.orjson import DataClassORJSONMixin
8
8
  @dataclass
9
9
  class GroupIdListItem(DataClassORJSONMixin):
10
10
  groupId: str
11
- groupType: Literal["ISOLATION"]
11
+ groupType: Literal["ISOLATION", "ILOP_APP"]
12
12
 
13
13
 
14
14
  # are there other values?
@@ -8,6 +8,7 @@ import logging
8
8
  from typing import Any, cast
9
9
 
10
10
  import betterproto
11
+ from Tea.exceptions import UnretryableException
11
12
 
12
13
  from pymammotion import CloudIOTGateway, MammotionMQTT
13
14
  from pymammotion.aliyun.cloud_gateway import DeviceOfflineException
@@ -201,7 +202,7 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
201
202
  try:
202
203
  if self.on_ready_callback:
203
204
  await self.on_ready_callback()
204
- except DeviceOfflineException:
205
+ except (DeviceOfflineException, UnretryableException):
205
206
  _LOGGER.debug("Device is offline")
206
207
 
207
208
  async def on_disconnect(self) -> None:
@@ -218,6 +219,7 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
218
219
  """Stop all tasks and disconnect."""
219
220
  if self._ble_sync_task:
220
221
  self._ble_sync_task.cancel()
222
+ # self._mqtt._mqtt_client.unsubscribe()
221
223
  self.stopped = True
222
224
 
223
225
  async def start(self) -> None:
@@ -226,7 +228,10 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
226
228
  await self.run_periodic_sync_task()
227
229
  self.stopped = False
228
230
  if not self.mqtt.is_connected():
229
- self.mqtt.connect_async()
231
+ loop = asyncio.get_running_loop()
232
+ await loop.run_in_executor(None, self.mqtt.connect_async)
233
+ # else:
234
+ # self.mqtt._mqtt_client.thing_on_thing_enable(None)
230
235
 
231
236
  async def _ble_sync(self) -> None:
232
237
  command_bytes = self._commands.send_todev_ble_sync(3)
@@ -142,6 +142,31 @@ class MammotionMQTT:
142
142
  # command = MammotionCommand(device_name="Luba")
143
143
  # self._cloud_client.send_cloud_command(command.get_report_cfg())
144
144
 
145
+ def unsubscribe(self) -> None:
146
+ self._linkkit_client.unsubscribe_topic(
147
+ f"/sys/{self._product_key}/{self._device_name}/app/down/account/bind_reply"
148
+ )
149
+ self._linkkit_client.unsubscribe_topic(
150
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/event/property/post_reply"
151
+ )
152
+ self._linkkit_client.unsubscribe_topic(
153
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/wifi/status/notify"
154
+ )
155
+ self._linkkit_client.unsubscribe_topic(
156
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/wifi/connect/event/notify"
157
+ )
158
+ self._linkkit_client.unsubscribe_topic(
159
+ f"/sys/{self._product_key}/{self._device_name}/app/down/_thing/event/notify"
160
+ )
161
+ self._linkkit_client.unsubscribe_topic(f"/sys/{self._product_key}/{self._device_name}/app/down/thing/events")
162
+ self._linkkit_client.unsubscribe_topic(f"/sys/{self._product_key}/{self._device_name}/app/down/thing/status")
163
+ self._linkkit_client.unsubscribe_topic(
164
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/properties"
165
+ )
166
+ self._linkkit_client.unsubscribe_topic(
167
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/model/down_raw"
168
+ )
169
+
145
170
  def _thing_on_topic_message(self, topic, payload, qos, user_data) -> None:
146
171
  """Is called when thing topic comes in."""
147
172
  logger.debug(
@@ -141,7 +141,7 @@ message NavGetCommData {
141
141
  int32 subCmd = 2;
142
142
  int32 action = 3;
143
143
  int32 type = 4;
144
- fixed64 hash = 5;
144
+ int64 hash = 5;
145
145
  int64 paternalHashA = 6;
146
146
  int64 paternalHashB = 7;
147
147
  int32 totalFrame = 8;
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "pymammotion"
7
- version = "0.4.8"
7
+ version = "0.4.10"
8
8
  license = "GPL-3.0"
9
9
  description = ""
10
10
  readme = "README.md"
@@ -65,7 +65,7 @@ mypy = "^1.11.2"
65
65
  autotyping = "^24.3.0"
66
66
 
67
67
  [tool.bumpver]
68
- current_version = "0.4.8"
68
+ current_version = "0.4.10"
69
69
  version_pattern = "MAJOR.MINOR.PATCH"
70
70
  commit_message = "Bump version {old_version} -> {new_version}"
71
71
  commit = true
File without changes
File without changes