pymammotion 0.4.52__tar.gz → 0.4.54__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.
- {pymammotion-0.4.52 → pymammotion-0.4.54}/PKG-INFO +1 -1
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/cloud_gateway.py +19 -10
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/devices/mammotion_bluetooth.py +1 -1
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pyproject.toml +2 -2
- {pymammotion-0.4.52 → pymammotion-0.4.54}/LICENSE +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/README.md +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/client.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/model/aep_response.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/model/connect_response.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/model/regions_response.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/regions.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/tea/core.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/tmp_constant.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/ble.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/ble_message.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/const.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/data/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/data/convert.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/data/framectrldata.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/data/notifydata.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/model/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/bluetooth/model/atomic_integer.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/const.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/account.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/device.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/device_config.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/device_info.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/device_limits.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/enums.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/excute_boarder_params.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/execute_boarder.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/generate_route_information.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/hash_list.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/location.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/mowing_modes.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/rapid_state.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/raw_data.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/region_data.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/report_info.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/work.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/mqtt/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/mqtt/event.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/mqtt/properties.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/mqtt/status.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/state_manager.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/event/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/event/event.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/http/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/http/_init_.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/http/encryption.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/http/http.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/http/model/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/http/model/camera_stream.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/http/model/http.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/abstract_message.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/driver.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/media.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/network.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/ota.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/system.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/video.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/control/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/control/joystick.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/devices/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/devices/base.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/devices/mammotion.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/devices/mammotion_cloud.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mqtt/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mqtt/linkkit/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mqtt/linkkit/h2client.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mqtt/linkkit/linkkit.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mqtt/mammotion_future.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/basestation.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/basestation_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/basestation_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/common.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/common_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/common_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/dev_net.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/dev_net_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/dev_net_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/luba_msg.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/luba_msg_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/luba_mul.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/luba_mul_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_driver.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_nav.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_ota.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_pept.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_sys.proto +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/py.typed +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/constant/__init__.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/constant/device_constant.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/conversions.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/datatype_converter.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/device_config.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/device_type.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/map.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/movement.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/mur_mur_hash.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/periodic.py +0 -0
- {pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/utility/rocker_util.py +0 -0
@@ -16,6 +16,7 @@ from alibabacloud_iot_api_gateway.models import CommonParams, Config, IoTApiRequ
|
|
16
16
|
from alibabacloud_tea_util.client import Client as UtilClient
|
17
17
|
from alibabacloud_tea_util.models import RuntimeOptions
|
18
18
|
from Tea.exceptions import UnretryableException
|
19
|
+
from orjson.orjson import JSONDecodeError
|
19
20
|
|
20
21
|
from pymammotion.aliyun.client import Client
|
21
22
|
from pymammotion.aliyun.model.aep_response import AepResponse
|
@@ -138,6 +139,14 @@ class CloudIOTGateway:
|
|
138
139
|
hashed_uuid = hashlib.sha1(f"{uuid.getnode()}".encode()).hexdigest()
|
139
140
|
return "".join(itertools.islice(itertools.cycle(hashed_uuid), length))
|
140
141
|
|
142
|
+
@staticmethod
|
143
|
+
def parse_json_response(response_body_str: str) -> dict:
|
144
|
+
try:
|
145
|
+
return json.loads(response_body_str) if response_body_str is not None else {}
|
146
|
+
except JSONDecodeError:
|
147
|
+
logger.error("Couldn't decode message %s", response_body_str)
|
148
|
+
return {}
|
149
|
+
|
141
150
|
def sign(self, data):
|
142
151
|
"""Generate signature for the given data."""
|
143
152
|
keys = ["appKey", "clientId", "deviceSn", "timestamp"]
|
@@ -207,7 +216,7 @@ class CloudIOTGateway:
|
|
207
216
|
response_body_str = response.body.decode("utf-8")
|
208
217
|
|
209
218
|
# Load the JSON string into a dictionary
|
210
|
-
response_body_dict =
|
219
|
+
response_body_dict = self.parse_json_response(response_body_str)
|
211
220
|
|
212
221
|
if int(response_body_dict.get("code")) != 200:
|
213
222
|
raise Exception("Error in getting regions: " + response_body_dict["msg"])
|
@@ -264,7 +273,7 @@ class CloudIOTGateway:
|
|
264
273
|
|
265
274
|
response_body_str = response.body.decode("utf-8")
|
266
275
|
|
267
|
-
response_body_dict =
|
276
|
+
response_body_dict = self.parse_json_response(response_body_str)
|
268
277
|
|
269
278
|
if int(response_body_dict.get("code")) != 200:
|
270
279
|
raise Exception("Error in getting mqtt credentials: " + response_body_dict["msg"])
|
@@ -464,7 +473,7 @@ class CloudIOTGateway:
|
|
464
473
|
response_body_str = response.body.decode("utf-8")
|
465
474
|
|
466
475
|
# Load the JSON string into a dictionary
|
467
|
-
response_body_dict =
|
476
|
+
response_body_dict = self.parse_json_response(response_body_str)
|
468
477
|
|
469
478
|
session_by_auth = SessionByAuthCodeResponse.from_dict(response_body_dict)
|
470
479
|
|
@@ -479,7 +488,7 @@ class CloudIOTGateway:
|
|
479
488
|
|
480
489
|
return response.body
|
481
490
|
|
482
|
-
async def sign_out(self) ->
|
491
|
+
async def sign_out(self) -> dict:
|
483
492
|
config = Config(
|
484
493
|
app_key=self._app_key,
|
485
494
|
app_secret=self._app_secret,
|
@@ -520,8 +529,7 @@ class CloudIOTGateway:
|
|
520
529
|
response_body_str = response.body.decode("utf-8")
|
521
530
|
|
522
531
|
# Load the JSON string into a dictionary
|
523
|
-
response_body_dict =
|
524
|
-
logger.debug(response_body_dict)
|
532
|
+
response_body_dict = self.parse_json_response(response_body_str)
|
525
533
|
return response_body_dict
|
526
534
|
|
527
535
|
async def check_or_refresh_session(self):
|
@@ -567,7 +575,7 @@ class CloudIOTGateway:
|
|
567
575
|
response_body_str = response.body.decode("utf-8")
|
568
576
|
|
569
577
|
# Load the JSON string into a dictionary
|
570
|
-
response_body_dict =
|
578
|
+
response_body_dict = self.parse_json_response(response_body_str)
|
571
579
|
|
572
580
|
if int(response_body_dict.get("code")) != 200:
|
573
581
|
logger.error(response_body_dict)
|
@@ -625,7 +633,7 @@ class CloudIOTGateway:
|
|
625
633
|
response_body_str = response.body.decode("utf-8")
|
626
634
|
|
627
635
|
# Load the JSON string into a dictionary
|
628
|
-
response_body_dict =
|
636
|
+
response_body_dict = self.parse_json_response(response_body_str)
|
629
637
|
|
630
638
|
if int(response_body_dict.get("code")) != 200:
|
631
639
|
raise Exception("Error in creating session: " + response_body_dict["msg"])
|
@@ -666,7 +674,7 @@ class CloudIOTGateway:
|
|
666
674
|
response_body_str = response.body.decode("utf-8")
|
667
675
|
|
668
676
|
# Load the JSON string into a dictionary
|
669
|
-
response_body_dict =
|
677
|
+
response_body_dict = self.parse_json_response(response_body_str)
|
670
678
|
|
671
679
|
if int(response_body_dict.get("code")) != 200:
|
672
680
|
raise Exception("Error in creating session: " + response_body_dict["msg"])
|
@@ -731,8 +739,9 @@ class CloudIOTGateway:
|
|
731
739
|
logger.debug(response.body)
|
732
740
|
logger.debug(iot_id)
|
733
741
|
|
742
|
+
|
734
743
|
response_body_str = response.body.decode("utf-8")
|
735
|
-
response_body_dict =
|
744
|
+
response_body_dict = self.parse_json_response(response_body_str)
|
736
745
|
|
737
746
|
if int(response_body_dict.get("code")) != 200:
|
738
747
|
logger.error(
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/devices/mammotion_bluetooth.py
RENAMED
@@ -133,7 +133,7 @@ class MammotionBaseBLEDevice(MammotionBaseDevice):
|
|
133
133
|
"""Stop all tasks and disconnect."""
|
134
134
|
if self._ble_sync_task:
|
135
135
|
self._ble_sync_task.cancel()
|
136
|
-
if self._client is not None:
|
136
|
+
if self._client is not None and self._client.is_connected:
|
137
137
|
await self._client.disconnect()
|
138
138
|
|
139
139
|
async def queue_command(self, key: str, **kwargs: Any) -> bytes | None:
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "pymammotion"
|
7
|
-
version = "0.4.
|
7
|
+
version = "0.4.54"
|
8
8
|
license = "GPL-3.0"
|
9
9
|
description = ""
|
10
10
|
readme = "README.md"
|
@@ -66,7 +66,7 @@ autotyping = "^24.3.0"
|
|
66
66
|
ipython = "^9.0.2"
|
67
67
|
|
68
68
|
[tool.bumpver]
|
69
|
-
current_version = "0.4.
|
69
|
+
current_version = "0.4.54"
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/model/dev_by_account_response.py
RENAMED
File without changes
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/model/login_by_oauth_response.py
RENAMED
File without changes
|
File without changes
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/aliyun/model/session_by_authcode_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/data/model/generate_route_information.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/abstract_message.py
RENAMED
File without changes
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/mammotion_command.py
RENAMED
File without changes
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/navigation.py
RENAMED
File without changes
|
{pymammotion-0.4.52 → pymammotion-0.4.54}/pymammotion/mammotion/commands/messages/network.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|