pymammotion 0.4.0a3__py3-none-any.whl → 0.4.0a5__py3-none-any.whl

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.
@@ -10,13 +10,13 @@ from logging import getLogger
10
10
  from typing import Awaitable, Callable, Optional
11
11
 
12
12
  import betterproto
13
- from linkkit.linkkit import LinkKit
14
13
  from paho.mqtt.client import MQTTMessage
15
14
 
16
15
  from pymammotion.aliyun.cloud_gateway import CloudIOTGateway
17
16
  from pymammotion.data.mqtt.event import ThingEventMessage
18
17
  from pymammotion.data.mqtt.properties import ThingPropertiesMessage
19
18
  from pymammotion.data.mqtt.status import ThingStatusMessage
19
+ from pymammotion.mqtt.linkkit.linkkit import LinkKit
20
20
  from pymammotion.proto.luba_msg import LubaMsg
21
21
 
22
22
  logger = getLogger(__name__)
@@ -1,4 +1,21 @@
1
1
  from pymammotion.data.model.device_limits import DeviceLimits
2
+ from pymammotion.utility.device_type import DeviceType
3
+
4
+ default_luba_config = {
5
+ "cutter_height": {"min": 20, "max": 35},
6
+ "working_speed": {"min": 0.2, "max": 1.2},
7
+ "working_path": {"min": 8, "max": 14},
8
+ "work_area_num_max": 60,
9
+ "display_image_type": 0,
10
+ }
11
+
12
+ default_yuka_config = {
13
+ "cutter_height": {"min": 0, "max": 0},
14
+ "working_speed": {"min": 0.2, "max": 0.6},
15
+ "working_path": {"min": 8, "max": 30},
16
+ "work_area_num_max": 60,
17
+ "display_image_type": 0,
18
+ }
2
19
 
3
20
 
4
21
  class DeviceConfig:
@@ -6,286 +23,11 @@ class DeviceConfig:
6
23
  # Dictionary to store all device configurations
7
24
 
8
25
  # Device mode configurations
9
- self.default_list = {
10
- "a1ZU6bdGjaM": {
11
- "extMod": "LubaAWD1000723",
12
- "cutter_height_min": 30,
13
- "cutter_height_max": 70,
14
- "working_speed_min": 0.2,
15
- "working_speed_max": 0.4,
16
- "work_area_num_max": 3,
17
- "working_path_min": 20,
18
- "working_path_max": 35,
19
- "display_imge_type": 1,
20
- },
21
- "a1nf9kRBWoH": {
22
- "extMod": "LubaAWD3000723",
23
- "cutter_height_min": 30,
24
- "cutter_height_max": 70,
25
- "working_speed_min": 0.2,
26
- "working_speed_max": 0.4,
27
- "work_area_num_max": 6,
28
- "working_path_min": 20,
29
- "working_path_max": 35,
30
- "display_imge_type": 1,
31
- },
32
- "a1ae1QnXZGf": {
33
- "extMod": "LubaAWD1000743",
34
- "cutter_height_min": 30,
35
- "cutter_height_max": 70,
36
- "working_speed_min": 0.2,
37
- "working_speed_max": 0.4,
38
- "work_area_num_max": 3,
39
- "working_path_min": 20,
40
- "working_path_max": 35,
41
- "display_imge_type": 1,
42
- },
43
- "a1K4Ki2L5rK": {
44
- "extMod": "LubaAWD5000723",
45
- "cutter_height_min": 30,
46
- "cutter_height_max": 70,
47
- "working_speed_min": 0.2,
48
- "working_speed_max": 0.6,
49
- "work_area_num_max": 10,
50
- "working_path_min": 20,
51
- "working_path_max": 35,
52
- "display_imge_type": 0,
53
- },
54
- "a1jOhAYOIG8": {
55
- "extMod": "LubaAWD5000743LS",
56
- "cutter_height_min": 30,
57
- "cutter_height_max": 70,
58
- "working_speed_min": 0.2,
59
- "working_speed_max": 0.6,
60
- "work_area_num_max": 10,
61
- "working_path_min": 20,
62
- "working_path_max": 35,
63
- "display_imge_type": 0,
64
- },
65
- "a1BmXWlsdbA": {
66
- "extMod": "LubaAWD5000743",
67
- "cutter_height_min": 30,
68
- "cutter_height_max": 70,
69
- "working_speed_min": 0.2,
70
- "working_speed_max": 0.6,
71
- "work_area_num_max": 10,
72
- "working_path_min": 20,
73
- "working_path_max": 35,
74
- "display_imge_type": 0,
75
- },
76
- "a1JFpmAV5Ur": {
77
- "extMod": "Kumar-10",
78
- "cutter_height_min": 30,
79
- "cutter_height_max": 70,
80
- "working_speed_min": 0.2,
81
- "working_speed_max": 0.6,
82
- "work_area_num_max": 10,
83
- "working_path_min": 20,
84
- "working_path_max": 35,
85
- "display_imge_type": 0,
86
- },
87
- "a1kweSOPylG": {
88
- "extMod": "LubaAWD3000723",
89
- "cutter_height_min": 30,
90
- "cutter_height_max": 70,
91
- "working_speed_min": 0.2,
92
- "working_speed_max": 0.6,
93
- "work_area_num_max": 6,
94
- "working_path_min": 20,
95
- "working_path_max": 35,
96
- "display_imge_type": 1,
97
- },
98
- "a1pvCnb3PPu": {
99
- "extMod": "LubaAWD1000743",
100
- "cutter_height_min": 30,
101
- "cutter_height_max": 70,
102
- "working_speed_min": 0.2,
103
- "working_speed_max": 0.6,
104
- "work_area_num_max": 3,
105
- "working_path_min": 20,
106
- "working_path_max": 35,
107
- "display_imge_type": 1,
108
- },
109
- "a1x0zHD3Xop": {
110
- "extMod": "LubaAWD5000743LS",
111
- "cutter_height_min": 30,
112
- "cutter_height_max": 70,
113
- "working_speed_min": 0.2,
114
- "working_speed_max": 0.6,
115
- "work_area_num_max": 10,
116
- "working_path_min": 20,
117
- "working_path_max": 35,
118
- "display_imge_type": 0,
119
- },
120
- "a1UBFdq6nNz": {
121
- "extMod": "LubaAWD5000723",
122
- "cutter_height_min": 30,
123
- "cutter_height_max": 70,
124
- "working_speed_min": 0.2,
125
- "working_speed_max": 0.6,
126
- "work_area_num_max": 10,
127
- "working_path_min": 20,
128
- "working_path_max": 35,
129
- "display_imge_type": 0,
130
- },
131
- "a1FbaU4Bqk5": {
132
- "extMod": "LubaAWD5000743",
133
- "cutter_height_min": 30,
134
- "cutter_height_max": 70,
135
- "working_speed_min": 0.2,
136
- "working_speed_max": 0.6,
137
- "work_area_num_max": 10,
138
- "working_path_min": 20,
139
- "working_path_max": 35,
140
- "display_imge_type": 0,
141
- },
142
- }
26
+ self.default_list = {'a1ZU6bdGjaM': {'extMod': 'LubaAWD1000723', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.4, 'work_area_num_max': 3, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 1}, 'a1nf9kRBWoH': {'extMod': 'LubaAWD3000723', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.4, 'work_area_num_max': 6, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 1}, 'a1ae1QnXZGf': {'extMod': 'LubaAWD1000743', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.4, 'work_area_num_max': 3, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 1}, 'a1K4Ki2L5rK': {'extMod': 'LubaAWD5000723', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'a1jOhAYOIG8': {'extMod': 'LubaAWD5000743LS', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'a1BmXWlsdbA': {'extMod': 'LubaAWD5000743', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'a1JFpmAV5Ur': {'extMod': 'Kumar-10', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'a1kweSOPylG': {'extMod': 'LubaAWD3000723', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 6, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 1}, 'a1pvCnb3PPu': {'extMod': 'LubaAWD1000743', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 3, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 1}, 'a1x0zHD3Xop': {'extMod': 'LubaAWD5000743LS', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'a1UBFdq6nNz': {'extMod': 'LubaAWD5000723', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'a1FbaU4Bqk5': {'extMod': 'LubaAWD5000743', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}}
27
+
28
+
29
+ self.inner_list = {'HM010060LBAWD10': {'extMod': 'LubaAWD1000', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 3, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 1}, 'HM030080LBAWD30': {'extMod': 'LubaAWD3000', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 6, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 1}, 'HM050080LBAWD50': {'extMod': 'LubaAWD5000', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM030060LBAWD50OMNI': {'extMod': 'LubaAWD5000', 'cutter_height_min': 30, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 1}, 'HM060100LBAWD50OMNIH': {'extMod': 'LubaAWD5000H', 'cutter_height_min': 60, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM030070LBVAWD10OMNI': {'extMod': 'Luba2AWD1000', 'cutter_height_min': 25, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM060100LBVAWD10OMNIH': {'extMod': 'Luba2AWD1000H', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 10, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM030070LBVAWD30OMNI': {'extMod': 'Luba2AWD3000', 'cutter_height_min': 25, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 20, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM060100LBVAWD30OMNIH': {'extMod': 'Luba2AWD3000H', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 20, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM030070LBVAWD50OMNI': {'extMod': 'Luba2AWD5000', 'cutter_height_min': 25, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 30, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM060100LBVAWD50OMNIH': {'extMod': 'Luba2AWD5000H', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 30, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM030070LBVAWD100OMNI': {'extMod': 'Luba2AWD10000', 'cutter_height_min': 25, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM060100LBVAWD100OMNIH': {'extMod': 'Luba2AWD10000H', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM030070LB2PAWD30OMNI': {'extMod': 'Luba2ProAWD3000', 'cutter_height_min': 25, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 0.8, 'work_area_num_max': 60, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM060100LB2PAWD30OMNIH': {'extMod': 'Luba2ProAWD3000NA', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 0.8, 'work_area_num_max': 60, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM030070LB2PAWD50OMNI': {'extMod': 'Luba2ProAWD5000', 'cutter_height_min': 25, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 1.0, 'work_area_num_max': 60, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM060100LB2PAWD50OMNIH': {'extMod': 'Luba2ProAWD5000NA', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 1.0, 'work_area_num_max': 60, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM030070LB2PAWD100OMNI': {'extMod': 'Luba2ProAWD10000', 'cutter_height_min': 25, 'cutter_height_max': 70, 'working_speed_min': 0.2, 'working_speed_max': 1.0, 'work_area_num_max': 60, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM060100LB2PAWD100OMNIH': {'extMod': 'Luba2ProAWD10000NA', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 1.0, 'work_area_num_max': 60, 'working_path_min': 20, 'working_path_max': 35, 'display_image_type': 0}, 'HM020065LB2MINIAWD08OMNI': {'extMod': 'Luba2MiniAWD800', 'cutter_height_min': 20, 'cutter_height_max': 65, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 5, 'working_path_max': 20, 'display_image_type': 0}, 'HM020065LB2MINIAWD15OMNI': {'extMod': 'Luba2MiniAWD1500', 'cutter_height_min': 20, 'cutter_height_max': 65, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 5, 'working_path_max': 20, 'display_image_type': 0}, 'HM020065LB2MINIAWD15OMNILD': {'extMod': 'Luba2MiniAWD1500Lidar', 'cutter_height_min': 20, 'cutter_height_max': 65, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 5, 'working_path_max': 20, 'display_image_type': 0}, 'HM055100LB2MINIAWD08OMNIH': {'extMod': 'Luba2MiniAWD800NA', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 5, 'working_path_max': 20, 'display_image_type': 0}, 'HM055100LB2MINIAWD15OMNIH': {'extMod': 'Luba2MiniAWD1500NA', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 5, 'working_path_max': 20, 'display_image_type': 0}, 'HM055100LB2MINIAWD15OMNIHLD': {'extMod': 'Luba2MiniAWD1500NALidar', 'cutter_height_min': 55, 'cutter_height_max': 100, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 5, 'working_path_max': 20, 'display_image_type': 0}, 'HM030070YK06': {'extMod': 'Yuka600', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM030100YK06H': {'extMod': 'Yuka600NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM030070YK10': {'extMod': 'Yuka1000', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM030100YK10H': {'extMod': 'Yuka1000NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM030070YK15': {'extMod': 'Yuka1500', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM030100YK15H': {'extMod': 'Yuka1500NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM020090YK20': {'extMod': 'Yuka2000', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM030100YK20H': {'extMod': 'Yuka2000NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM020080YKMINI05': {'extMod': 'YukaMini500', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 8, 'working_path_max': 14, 'display_image_type': 0}, 'HM050090YKMINI05H': {'extMod': 'YukaMini500NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 8, 'working_path_max': 14, 'display_image_type': 0}, 'HM020080YKMINI08': {'extMod': 'YukaMini800', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 8, 'working_path_max': 14, 'display_image_type': 0}, 'HM050090YKMINI08H': {'extMod': 'YukaMini800NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 8, 'working_path_max': 14, 'display_image_type': 0}, 'HM020080YKMINI06': {'extMod': 'YukaMini600', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 8, 'working_path_max': 14, 'display_image_type': 0}, 'HM020080YKMINI07': {'extMod': 'YukaMini700', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 8, 'working_path_max': 14, 'display_image_type': 0}, 'HM050090YKMINI06H': {'extMod': 'YukaMini600NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 8, 'working_path_max': 14, 'display_image_type': 0}, 'HM050090YKMINI07H': {'extMod': 'YukaMini700NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 8, 'working_path_max': 14, 'display_image_type': 0}, 'HM020090YKPLUS15': {'extMod': 'YukaPlus1500', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM020090YKPLUS20': {'extMod': 'YukaPlus2000', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM030100YKPLUS15H': {'extMod': 'YukaPlus1500NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM030100YKPLUS20H': {'extMod': 'YukaPlus2000NA', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 15, 'working_path_max': 30, 'display_image_type': 0}, 'HM020080MN23103': {'extMod': 'MN231_1', 'cutter_height_min': 0, 'cutter_height_max': 0, 'working_speed_min': 0.2, 'working_speed_max': 0.6, 'work_area_num_max': 60, 'working_path_min': 8, 'working_path_max': 14, 'display_image_type': 0}}
143
30
 
144
- self.inner_list = {
145
- "HM010060LBAWD10": {
146
- "extMod": "LubaAWD1000",
147
- "cutter_height_min": 30,
148
- "cutter_height_max": 70,
149
- "working_speed_min": 0.2,
150
- "working_speed_max": 0.6,
151
- "work_area_num_max": 3,
152
- "working_path_min": 20,
153
- "working_path_max": 35,
154
- "display_imge_type": 1,
155
- },
156
- "HM030080LBAWD30": {
157
- "extMod": "LubaAWD3000",
158
- "cutter_height_min": 30,
159
- "cutter_height_max": 70,
160
- "working_speed_min": 0.2,
161
- "working_speed_max": 0.6,
162
- "work_area_num_max": 6,
163
- "working_path_min": 20,
164
- "working_path_max": 35,
165
- "display_imge_type": 1,
166
- },
167
- "HM050080LBAWD50": {
168
- "extMod": "LubaAWD5000",
169
- "cutter_height_min": 30,
170
- "cutter_height_max": 70,
171
- "working_speed_min": 0.2,
172
- "working_speed_max": 0.6,
173
- "work_area_num_max": 10,
174
- "working_path_min": 20,
175
- "working_path_max": 35,
176
- "display_imge_type": 0,
177
- },
178
- "HM030060LBAWD50OMNI": {
179
- "extMod": "LubaAWD5000",
180
- "cutter_height_min": 30,
181
- "cutter_height_max": 70,
182
- "working_speed_min": 0.2,
183
- "working_speed_max": 0.6,
184
- "work_area_num_max": 10,
185
- "working_path_min": 20,
186
- "working_path_max": 35,
187
- "display_imge_type": 1,
188
- },
189
- "HM060100LBAWD50OMNIH": {
190
- "extMod": "LubaAWD5000H",
191
- "cutter_height_min": 60,
192
- "cutter_height_max": 100,
193
- "working_speed_min": 0.2,
194
- "working_speed_max": 0.6,
195
- "work_area_num_max": 10,
196
- "working_path_min": 20,
197
- "working_path_max": 35,
198
- "display_imge_type": 0,
199
- },
200
- "HM030070LBVAWD10OMNI": {
201
- "extMod": "Luba2AWD1000",
202
- "cutter_height_min": 25,
203
- "cutter_height_max": 70,
204
- "working_speed_min": 0.2,
205
- "working_speed_max": 0.6,
206
- "work_area_num_max": 10,
207
- "working_path_min": 20,
208
- "working_path_max": 35,
209
- "display_imge_type": 0,
210
- },
211
- "HM060100LBVAWD10OMNIH": {
212
- "extMod": "Luba2AWD1000H",
213
- "cutter_height_min": 55,
214
- "cutter_height_max": 100,
215
- "working_speed_min": 0.2,
216
- "working_speed_max": 0.6,
217
- "work_area_num_max": 10,
218
- "working_path_min": 20,
219
- "working_path_max": 35,
220
- "display_imge_type": 0,
221
- },
222
- "HM030070LBVAWD30OMNI": {
223
- "extMod": "Luba2AWD3000",
224
- "cutter_height_min": 25,
225
- "cutter_height_max": 70,
226
- "working_speed_min": 0.2,
227
- "working_speed_max": 0.6,
228
- "work_area_num_max": 20,
229
- "working_path_min": 20,
230
- "working_path_max": 35,
231
- "display_imge_type": 0,
232
- },
233
- "HM060100LBVAWD30OMNIH": {
234
- "extMod": "Luba2AWD3000H",
235
- "cutter_height_min": 55,
236
- "cutter_height_max": 100,
237
- "working_speed_min": 0.2,
238
- "working_speed_max": 0.6,
239
- "work_area_num_max": 20,
240
- "working_path_min": 20,
241
- "working_path_max": 35,
242
- "display_imge_type": 0,
243
- },
244
- "HM030070LBVAWD50OMNI": {
245
- "extMod": "Luba2AWD5000",
246
- "cutter_height_min": 25,
247
- "cutter_height_max": 70,
248
- "working_speed_min": 0.2,
249
- "working_speed_max": 0.6,
250
- "work_area_num_max": 30,
251
- "working_path_min": 20,
252
- "working_path_max": 35,
253
- "display_imge_type": 0,
254
- },
255
- "HM060100LBVAWD50OMNIH": {
256
- "extMod": "Luba2AWD5000H",
257
- "cutter_height_min": 55,
258
- "cutter_height_max": 100,
259
- "working_speed_min": 0.2,
260
- "working_speed_max": 0.6,
261
- "work_area_num_max": 30,
262
- "working_path_min": 20,
263
- "working_path_max": 35,
264
- "display_imge_type": 0,
265
- },
266
- "HM030070LBVAWD100OMNI": {
267
- "extMod": "Luba2AWD10000",
268
- "cutter_height_min": 25,
269
- "cutter_height_max": 70,
270
- "working_speed_min": 0.2,
271
- "working_speed_max": 0.6,
272
- "work_area_num_max": 60,
273
- "working_path_min": 20,
274
- "working_path_max": 35,
275
- "display_imge_type": 0,
276
- },
277
- "HM060100LBVAWD100OMNIH": {
278
- "extMod": "Luba2AWD10000H",
279
- "cutter_height_min": 55,
280
- "cutter_height_max": 100,
281
- "working_speed_min": 0.2,
282
- "working_speed_max": 0.6,
283
- "work_area_num_max": 60,
284
- "working_path_min": 20,
285
- "working_path_max": 35,
286
- "display_imge_type": 0,
287
- },
288
- }
289
31
 
290
32
  def get_device_config(self, int_mod_or_key: str) -> dict:
291
33
  """Look up device configuration by internal model code
@@ -340,6 +82,23 @@ class DeviceConfig:
340
82
  }
341
83
  )
342
84
 
85
+ @staticmethod
86
+ def get_best_default(product_key: str) -> DeviceLimits:
87
+ """basic fallback if device is offline."""
88
+
89
+ if DeviceType.contain_luba_product_key(product_key):
90
+ return DeviceLimits.from_dict(
91
+ default_luba_config
92
+ )
93
+ if DeviceType.contain_luba_2_product_key(product_key):
94
+ return DeviceLimits.from_dict(
95
+ default_luba_config
96
+ )
97
+
98
+ return DeviceLimits.from_dict(default_yuka_config)
99
+
100
+
101
+
343
102
 
344
103
  # # Usage example:
345
104
  # def main():
@@ -1,5 +1,21 @@
1
1
  from enum import Enum
2
2
 
3
+ LubaProductKey = ["a1UBFdq6nNz", "a1x0zHD3Xop", "a1pvCnb3PPu", "a1kweSOPylG", "a1JFpmAV5Ur", "a1BmXWlsdbA", "a1jOhAYOIG8", "a1K4Ki2L5rK", "a1ae1QnXZGf", "a1nf9kRBWoH", "a1ZU6bdGjaM"]
4
+
5
+ LubaVProductKey = ["a1iMygIwxFC", "a1LLmy1zc0j", "a1LLmy1zc0j"]
6
+
7
+ LubaVProProductKey = ["a1mb8v6tnAa", "a1pHsTqyoPR"]
8
+
9
+ Luba2MiniProductKey = ["a1L5ZfJIxGl", "a1dCWYFLROK"]
10
+
11
+ YukaProductKey = ["a1kT0TlYEza", "a1IQV0BrnXb"]
12
+
13
+ YukaPlusProductKey = ["a1lNESu9VST"]
14
+
15
+ YukaMiniProductKey = ["a1BqmEWMRbX", "a1biqVGvxrE"]
16
+
17
+ RTKProductKey = ["a1qXkZ5P39W", "a1Nc68bGZzX"]
18
+
3
19
 
4
20
  class DeviceType(Enum):
5
21
  UNKNOWN = (-1, "UNKNOWN", "Unknown")
@@ -226,7 +242,7 @@ class DeviceType(Enum):
226
242
 
227
243
  if not product_key:
228
244
  return False
229
- return product_key in ["a1qXkZ5P39W", "a1Nc68bGZzX"]
245
+ return product_key in RTKProductKey
230
246
 
231
247
  @staticmethod
232
248
  def contain_luba_product_key(product_key) -> bool:
@@ -242,19 +258,7 @@ class DeviceType(Enum):
242
258
 
243
259
  if not product_key:
244
260
  return False
245
- return product_key in [
246
- "a1UBFdq6nNz",
247
- "a1x0zHD3Xop",
248
- "a1pvCnb3PPu",
249
- "a1kweSOPylG",
250
- "a1JFpmAV5Ur",
251
- "a1BmXWlsdbA",
252
- "a1jOhAYOIG8",
253
- "a1K4Ki2L5rK",
254
- "a1ae1QnXZGf",
255
- "a1nf9kRBWoH",
256
- "a1ZU6bdGjaM",
257
- ]
261
+ return product_key in LubaProductKey
258
262
 
259
263
  @staticmethod
260
264
  def contain_luba_2_product_key(product_key) -> bool:
@@ -270,7 +274,7 @@ class DeviceType(Enum):
270
274
 
271
275
  if not product_key:
272
276
  return False
273
- return product_key in ["a1iMygIwxFC", "a1LLmy1zc0j", "a1LLmy1zc0j"]
277
+ return product_key in LubaVProductKey
274
278
 
275
279
  @staticmethod
276
280
  def contain_yuka_product_key(product_key) -> bool:
@@ -286,7 +290,39 @@ class DeviceType(Enum):
286
290
 
287
291
  if not product_key:
288
292
  return False
289
- return product_key in ["a1IQV0BrnXb"]
293
+ return product_key in YukaProductKey
294
+
295
+ @staticmethod
296
+ def contain_yuka_mini_product_key(product_key) -> bool:
297
+ """Check if the given product key is present in a predefined list.
298
+
299
+ Args:
300
+ product_key (str): The product key to be checked.
301
+
302
+ Returns:
303
+ bool: True if the product key is in the predefined list, False otherwise.
304
+
305
+ """
306
+
307
+ if not product_key:
308
+ return False
309
+ return product_key in YukaMiniProductKey
310
+
311
+ @staticmethod
312
+ def contain_yuka_plus_product_key(product_key) -> bool:
313
+ """Check if the given product key is present in a predefined list.
314
+
315
+ Args:
316
+ product_key (str): The product key to be checked.
317
+
318
+ Returns:
319
+ bool: True if the product key is in the predefined list, False otherwise.
320
+
321
+ """
322
+
323
+ if not product_key:
324
+ return False
325
+ return product_key in YukaPlusProductKey
290
326
 
291
327
  def is_support_video(self):
292
328
  return self != DeviceType.LUBA
@@ -1,11 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: pymammotion
3
- Version: 0.4.0a3
3
+ Version: 0.4.0a5
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
7
7
  Author-email: michael@jumblesoft.co.nz
8
- Requires-Python: >=3.10,<3.13
8
+ Requires-Python: >=3.10
9
9
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.10
@@ -15,18 +15,17 @@ Requires-Dist: aiohttp (>=3.9.1,<4.0.0)
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)
18
- Requires-Dist: aliyun-iot-linkkit (>=1.2.12,<2.0.0)
19
- Requires-Dist: aliyun-python-sdk-iot (>=8.57.0,<9.0.0)
20
18
  Requires-Dist: async-timeout (>=4.0.3,<5.0.0)
21
19
  Requires-Dist: betterproto (>=1.2.5,<2.0.0)
22
20
  Requires-Dist: bleak (>=0.21.0)
23
21
  Requires-Dist: bleak-retry-connector (>=3.5.0,<4.0.0)
22
+ Requires-Dist: crcmod (>=1.7,<2.0)
24
23
  Requires-Dist: cryptography (>=43.0.1)
25
24
  Requires-Dist: jsonic (>=1.0.0,<2.0.0)
26
25
  Requires-Dist: mashumaro (>=3.13,<4.0)
27
26
  Requires-Dist: numpy (>=1.26.0)
28
27
  Requires-Dist: orjson (>=3.9.15,<4.0.0)
29
- Requires-Dist: paho-mqtt (>=1.6.1,<2.0.0)
28
+ Requires-Dist: paho-mqtt (==2.1.0)
30
29
  Requires-Dist: protobuf (>=4.23.1)
31
30
  Requires-Dist: py-jsonic (>=0.0.2,<0.0.3)
32
31
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  pymammotion/__init__.py,sha256=u1OHuD8Uj0qCOH4I7Lt5d7T-TPt1R0pY-bv8S6UfVxM,1587
2
2
  pymammotion/aliyun/__init__.py,sha256=T1lkX7TRYiL4nqYanG4l4MImV-SlavSbuooC-W-uUGw,29
3
- pymammotion/aliyun/cloud_gateway.py,sha256=bFlVEmKBocxbD8ZxTXFXQZi4GwTDhzxChITJadzX2W0,25877
3
+ pymammotion/aliyun/cloud_gateway.py,sha256=oK2_iZwqnaoE-QZcrEy8uSty5ofR014qxHoWH4ciE5A,25836
4
4
  pymammotion/aliyun/cloud_service.py,sha256=px7dUKow5Z7VyebjYzuKkzkm77XbUXYiFiYO_2e-UQ0,2207
5
5
  pymammotion/aliyun/model/aep_response.py,sha256=8f6GIP58ve8gd6AL3HBoXxsy0n2q4ygWvjELGnoOnVc,452
6
6
  pymammotion/aliyun/model/connect_response.py,sha256=Yz-fEbDzgGPTo5Of2oAjmFkSv08T7ze80pQU4k-gKIU,824
@@ -24,9 +24,9 @@ pymammotion/const.py,sha256=lWRxvTVdXnNHuxqvRkjO5ziK0Ic-fZMM6J2dbe5M6Nc,385
24
24
  pymammotion/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  pymammotion/data/model/__init__.py,sha256=aSyroxYQQS-WMRi6WmWm2js4wLa9nmsi160gx9tts4o,323
26
26
  pymammotion/data/model/account.py,sha256=vJM-KTf2q6eBfVC-UlNHBSmJvqHiCawZ40vnuhXhaz8,140
27
- pymammotion/data/model/device.py,sha256=wS8EiV0EinWgpzwaAtJKPQwjrIWuvSxRAXu6KWclrB0,5626
27
+ pymammotion/data/model/device.py,sha256=BXmpDdiJOJU1nenjNlQn_5ShPPjFlxPUMISBduCL11w,6770
28
28
  pymammotion/data/model/device_config.py,sha256=wjayKnzoPDmBhqWZKTPDSueNEPCIWCB20tFEDSGIUsM,2602
29
- pymammotion/data/model/device_info.py,sha256=ahz2xILdSYdX6SIVuVzz8QCfSQLefbQnpXrsiDpBDbY,585
29
+ pymammotion/data/model/device_info.py,sha256=TuM6k0jDsG4x0BRXb1fi3UlpI-8CeKd4RgCfzEeHqqY,897
30
30
  pymammotion/data/model/device_limits.py,sha256=saW3iUvGq8WEn6CASn5hS5tVJpSeak4FDy_gnHtYqTQ,1955
31
31
  pymammotion/data/model/enums.py,sha256=EpKmO8yVUZyEnTY4yH0DMMVKYNQM42zpW1maUu0i3IE,1582
32
32
  pymammotion/data/model/excute_boarder_params.py,sha256=9CpUqrygcle1C_1hDW-riLmm4map4ZbE842NXjcomEI,1394
@@ -44,7 +44,7 @@ pymammotion/data/mqtt/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdr
44
44
  pymammotion/data/mqtt/event.py,sha256=pEOQcjnv5XKosSPD8UmVAgCAaI8vLuIhGECZcU4xKjk,5055
45
45
  pymammotion/data/mqtt/properties.py,sha256=kvphcjrDuJHuX8Az98-wKeFv_rSmu2Fz9YKLGodGSj0,3759
46
46
  pymammotion/data/mqtt/status.py,sha256=zqnlo-MzejEQZszl0i0Wucoc3E76x6UtI9JLxoBnu54,1067
47
- pymammotion/data/state_manager.py,sha256=W6PjIMXHPObocYay6ZQ7ITju27MA5kK5udFptAydwuE,5382
47
+ pymammotion/data/state_manager.py,sha256=bY8sGj5k_bg_F6PemYZ6Y7P5HFjeDcDU-DIItuTTTBM,5763
48
48
  pymammotion/event/__init__.py,sha256=mgATR6vPHACNQ-0zH5fi7NdzeTCDV1CZyaWPmtUusi8,115
49
49
  pymammotion/event/event.py,sha256=bj2RirSIRyBs0QvkcrOtwZWUX_8F3m1sySuHVyKmZLs,2143
50
50
  pymammotion/http/_init_.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -67,12 +67,15 @@ pymammotion/mammotion/control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
67
67
  pymammotion/mammotion/control/joystick.py,sha256=QfBVxM_gxpWsZAGO90whtgxCI2tIZ3TTad9wHIPsU9s,5640
68
68
  pymammotion/mammotion/devices/__init__.py,sha256=f2qQFPgLGmV85W2hSlMUh5BYuht9o_Ar_JEAAMD4fsE,102
69
69
  pymammotion/mammotion/devices/base.py,sha256=2IKm7CYGmvRLpJaAKp25tL23UhOoSEHJ6On5D0N5TSk,10763
70
- pymammotion/mammotion/devices/mammotion.py,sha256=7kJXTIdlthnbgUBVPcrc3VnxOtLWvk0d2vFetfjwrg0,12590
70
+ pymammotion/mammotion/devices/mammotion.py,sha256=_4w8dGoA1dcylZWtfMJyr7z-bjp9WcIEnWJ3mPHqOKA,12632
71
71
  pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=HUOKnjYUWTGjksyQDCPKF_u3dWo2ddgrWCBXnJ2VkwA,18963
72
72
  pymammotion/mammotion/devices/mammotion_cloud.py,sha256=a9fB0ZCYElRxrjnwCM81RXCbxo5kJKhGa-BGck9U3-A,12949
73
73
  pymammotion/mqtt/__init__.py,sha256=Ocs5e-HLJvTuDpVXyECEsWIvwsUaxzj7lZ9mSYutNDY,105
74
+ pymammotion/mqtt/linkkit/__init__.py,sha256=8_OX8MeC5UrW_1WLBqlc56hJkumGiBDgwQpwn-jaCTY,79
75
+ pymammotion/mqtt/linkkit/h2client.py,sha256=8W7QJCFT0Fqmg8Tw82Kefq9_rE22_wYHk4m0VXh1IEc,19387
76
+ pymammotion/mqtt/linkkit/linkkit.py,sha256=67nKXuQNQOlL9A1JdgaSBsLOs0hYeBOlq-ZFd7i-tg8,134068
74
77
  pymammotion/mqtt/mammotion_future.py,sha256=_OWqKOlUGl2yT1xOsXFQYpGd-1zQ63OxqXgy7KRQgYc,710
75
- pymammotion/mqtt/mammotion_mqtt.py,sha256=LaySave_hf0gU3crUTLqzpdQtxIwK8vu5DM8F8fbU2Y,8748
78
+ pymammotion/mqtt/mammotion_mqtt.py,sha256=px8qPKP87gockm_1UFxVtmNXpCFyMU1_EpIGNZT5L7s,8765
76
79
  pymammotion/proto/__init__.py,sha256=v3_P1LOsYRBN9qCAhaWrWMX7GWHrox9XD3hdZQxcPZM,190
77
80
  pymammotion/proto/basestation.proto,sha256=_x5gAz3FkZXS1jtq4GgZgaDCuRU-UV-7HTFdsfQ3zbo,1034
78
81
  pymammotion/proto/basestation.py,sha256=js64_N2xQYRxWPRdVNEapO0qe7vBlfYnjW5sE8hi7hw,2026
@@ -119,13 +122,13 @@ pymammotion/utility/constant/__init__.py,sha256=tcY0LDeD-qDDHx2LKt55KOyv9ZI0UfCN
119
122
  pymammotion/utility/constant/device_constant.py,sha256=RQ0Yi6hQa9hfx4wVXypPaPozahQ8Y4EiU3RWZYDZeOY,7593
120
123
  pymammotion/utility/conversions.py,sha256=v3YICy0zZwwBBzrUZgabI7GRfiDBnkiAX2qdtk3NxOY,89
121
124
  pymammotion/utility/datatype_converter.py,sha256=SPM_HuaaD_XOawlqEnA8qlRRZXGba3WjA8kGOZgeBlQ,4284
122
- pymammotion/utility/device_config.py,sha256=XWuMLL8xkyVyZl5HrG6nR3Hz7eKyQcOZfzFHvgRYsZo,13117
123
- pymammotion/utility/device_type.py,sha256=xOgfIhOkzgcAtoKtlhlB1q8FpiKe1rVVV5BvN7K7zYc,9433
125
+ pymammotion/utility/device_config.py,sha256=rTk2USjOnHeZyKKlpcLINfcDknsH50ok_FRguTSawC8,18232
126
+ pymammotion/utility/device_type.py,sha256=GVJIgaGKZrTFy3qZjBy9v8ddJ2g6qJ0WZAUMSTbx10Y,10537
124
127
  pymammotion/utility/map.py,sha256=GYscVMg2cX3IPlNpCBNHDW0S55yS1WGRf1iHnNZ7TfQ,2227
125
128
  pymammotion/utility/movement.py,sha256=N75oAoAgFydqoaOedYIxGUHmuTCtPzAOtb-d_29tpfI,615
126
129
  pymammotion/utility/periodic.py,sha256=MbeSb9cfhxzYmdT_RiE0dZe3H9IfbQW_zSqhmSX2RUc,3321
127
130
  pymammotion/utility/rocker_util.py,sha256=6tX7sS87qoQC_tsxbx3NLL-HgS08wtzXiZkhDiz7uo0,7179
128
- pymammotion-0.4.0a3.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
129
- pymammotion-0.4.0a3.dist-info/METADATA,sha256=GTbxC8NBsmzqCmEduVLA4YlWETppxH2dxMFYwewpCbM,3964
130
- pymammotion-0.4.0a3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
131
- pymammotion-0.4.0a3.dist-info/RECORD,,
131
+ pymammotion-0.4.0a5.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
132
+ pymammotion-0.4.0a5.dist-info/METADATA,sha256=KhtqVKiDZloRq32jpBKqi2hbRs8y5pK-9HnswzWgiAc,3879
133
+ pymammotion-0.4.0a5.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
134
+ pymammotion-0.4.0a5.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any