pymammotion 0.4.10__tar.gz → 0.4.11b1__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.10 → pymammotion-0.4.11b1}/PKG-INFO +1 -1
  2. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/hash_list.py +27 -13
  3. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pyproject.toml +2 -2
  4. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/LICENSE +0 -0
  5. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/README.md +0 -0
  6. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/__init__.py +0 -0
  7. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/__init__.py +0 -0
  8. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/cloud_gateway.py +0 -0
  9. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/model/aep_response.py +0 -0
  10. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/model/connect_response.py +0 -0
  11. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  12. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  13. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/model/regions_response.py +0 -0
  14. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  15. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  16. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/aliyun/tmp_constant.py +0 -0
  17. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/__init__.py +0 -0
  18. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/ble.py +0 -0
  19. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/ble_message.py +0 -0
  20. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/const.py +0 -0
  21. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/data/__init__.py +0 -0
  22. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/data/convert.py +0 -0
  23. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  24. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/data/notifydata.py +0 -0
  25. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/model/__init__.py +0 -0
  26. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/bluetooth/model/atomic_integer.py +0 -0
  27. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/const.py +0 -0
  28. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/__init__.py +0 -0
  29. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/__init__.py +0 -0
  30. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/account.py +0 -0
  31. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/device.py +0 -0
  32. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/device_config.py +0 -0
  33. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/device_info.py +0 -0
  34. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/device_limits.py +0 -0
  35. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/enums.py +0 -0
  36. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/excute_boarder_params.py +0 -0
  37. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/execute_boarder.py +0 -0
  38. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/generate_route_information.py +0 -0
  39. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/location.py +0 -0
  40. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/mowing_modes.py +0 -0
  41. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/plan.py +0 -0
  42. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/rapid_state.py +0 -0
  43. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/raw_data.py +0 -0
  44. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/region_data.py +0 -0
  45. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/model/report_info.py +0 -0
  46. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/mqtt/__init__.py +0 -0
  47. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/mqtt/event.py +0 -0
  48. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/mqtt/properties.py +0 -0
  49. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/mqtt/status.py +0 -0
  50. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/data/state_manager.py +0 -0
  51. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/event/__init__.py +0 -0
  52. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/event/event.py +0 -0
  53. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/http/_init_.py +0 -0
  54. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/http/encryption.py +0 -0
  55. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/http/http.py +0 -0
  56. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/http/model/http.py +0 -0
  57. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/__init__.py +0 -0
  58. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/__init__.py +0 -0
  59. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  60. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  61. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  62. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  63. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/messages/media.py +0 -0
  64. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  65. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/messages/network.py +0 -0
  66. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  67. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/messages/system.py +0 -0
  68. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/commands/messages/video.py +0 -0
  69. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/control/__init__.py +0 -0
  70. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/control/joystick.py +0 -0
  71. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/devices/__init__.py +0 -0
  72. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/devices/base.py +0 -0
  73. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/devices/mammotion.py +0 -0
  74. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/devices/mammotion_bluetooth.py +0 -0
  75. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mammotion/devices/mammotion_cloud.py +0 -0
  76. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mqtt/__init__.py +0 -0
  77. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mqtt/linkkit/__init__.py +0 -0
  78. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mqtt/linkkit/h2client.py +0 -0
  79. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mqtt/linkkit/linkkit.py +0 -0
  80. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mqtt/mammotion_future.py +0 -0
  81. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  82. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/__init__.py +0 -0
  83. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/basestation.proto +0 -0
  84. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/basestation_pb2.py +0 -0
  85. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/basestation_pb2.pyi +0 -0
  86. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/common.proto +0 -0
  87. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/common_pb2.py +0 -0
  88. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/common_pb2.pyi +0 -0
  89. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/dev_net.proto +0 -0
  90. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/dev_net_pb2.py +0 -0
  91. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  92. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/luba_msg.proto +0 -0
  93. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/luba_msg_pb2.py +0 -0
  94. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  95. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/luba_mul.proto +0 -0
  96. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/luba_mul_pb2.py +0 -0
  97. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  98. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_driver.proto +0 -0
  99. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  100. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  101. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_nav.proto +0 -0
  102. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  103. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  104. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_ota.proto +0 -0
  105. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  106. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  107. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_pept.proto +0 -0
  108. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  109. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  110. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_sys.proto +0 -0
  111. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  112. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  113. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/py.typed +0 -0
  114. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/utility/constant/__init__.py +0 -0
  115. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/utility/constant/device_constant.py +0 -0
  116. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/utility/conversions.py +0 -0
  117. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/utility/datatype_converter.py +0 -0
  118. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/utility/device_config.py +0 -0
  119. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/utility/device_type.py +0 -0
  120. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/utility/map.py +0 -0
  121. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/utility/movement.py +0 -0
  122. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/pymammotion/utility/periodic.py +0 -0
  123. {pymammotion-0.4.10 → pymammotion-0.4.11b1}/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.10
3
+ Version: 0.4.11b1
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
@@ -118,7 +118,7 @@ class HashList(DataClassORJSONMixin):
118
118
  hashlist for all our hashIDs for verification
119
119
  """
120
120
 
121
- root_hash_list: RootHashList = field(default_factory=RootHashList)
121
+ root_hash_lists: list[RootHashList] = field(default_factory=list)
122
122
  area: dict = field(default_factory=dict) # type 0
123
123
  path: dict = field(default_factory=dict) # type 2
124
124
  obstacle: dict = field(default_factory=dict) # type 1
@@ -135,37 +135,51 @@ class HashList(DataClassORJSONMixin):
135
135
 
136
136
  @property
137
137
  def hashlist(self) -> list[int]:
138
- if len(self.root_hash_list.data) == 0:
138
+ if not self.root_hash_lists:
139
139
  return []
140
- return [i for obj in self.root_hash_list.data for i in obj.data_couple]
140
+ # Combine data_couple from all RootHashLists
141
+ return [i for root_list in self.root_hash_lists for obj in root_list.data for i in obj.data_couple]
141
142
 
142
143
  @property
143
144
  def missing_hashlist(self) -> list[int]:
144
145
  """Return missing hashlist."""
146
+ all_hash_ids = set(self.area.keys()).union(
147
+ self.path.keys(), self.obstacle.keys(), self.dump.keys(), self.svg.keys()
148
+ )
145
149
  return [
146
150
  i
147
- for obj in self.root_hash_list.data
151
+ for root_list in self.root_hash_lists
152
+ for obj in root_list.data
148
153
  for i in obj.data_couple
149
- if f"{i}"
150
- not in set(self.area.keys()).union(
151
- self.path.keys(), self.obstacle.keys(), self.dump.keys(), self.svg.keys()
152
- )
154
+ if f"{i}" not in all_hash_ids
153
155
  ]
154
156
 
155
157
  def update_root_hash_list(self, hash_list: NavGetHashListData) -> None:
156
- self.root_hash_list.total_frame = hash_list.total_frame
158
+ target_root_list = next((rhl for rhl in self.root_hash_lists if rhl.total_frame == hash_list.total_frame), None)
157
159
 
158
- for index, obj in enumerate(self.root_hash_list.data):
160
+ if target_root_list is None:
161
+ # Create new RootHashList if none exists for this total_frame
162
+ new_root_list = RootHashList(total_frame=hash_list.total_frame, data=[hash_list])
163
+ self.root_hash_lists.append(new_root_list)
164
+ return
165
+
166
+ for index, obj in enumerate(target_root_list.data):
159
167
  if obj.current_frame == hash_list.current_frame:
160
168
  # Replace the item if current_frame matches
161
- self.root_hash_list.data[index] = hash_list
169
+ target_root_list.data[index] = hash_list
162
170
  return
163
171
 
164
172
  # If no match was found, append the new item
165
- self.root_hash_list.data.append(hash_list)
173
+ target_root_list.data.append(hash_list)
166
174
 
167
175
  def missing_hash_frame(self) -> list[int]:
168
- return self._find_missing_frames(self.root_hash_list)
176
+ """Returns a combined list of all missing frames across all RootHashLists."""
177
+ missing_frames = []
178
+ for root_list in self.root_hash_lists:
179
+ missing = self._find_missing_frames(root_list)
180
+ if missing:
181
+ missing_frames.extend(missing)
182
+ return missing_frames
169
183
 
170
184
  def missing_frame(self, hash_data: NavGetCommDataAck | SvgMessageAckT) -> list[int]:
171
185
  if hash_data.type == PathType.AREA:
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "pymammotion"
7
- version = "0.4.10"
7
+ version = "0.4.11-beta1"
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.10"
68
+ current_version = "0.4.11-beta1"
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