pymammotion 0.4.23__tar.gz → 0.4.26__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. {pymammotion-0.4.23 → pymammotion-0.4.26}/PKG-INFO +1 -1
  2. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/cloud_gateway.py +24 -9
  3. pymammotion-0.4.26/pymammotion/aliyun/regions.py +62 -0
  4. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/tea/core.py +2 -0
  5. {pymammotion-0.4.23 → pymammotion-0.4.26}/pyproject.toml +2 -2
  6. {pymammotion-0.4.23 → pymammotion-0.4.26}/LICENSE +0 -0
  7. {pymammotion-0.4.23 → pymammotion-0.4.26}/README.md +0 -0
  8. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/__init__.py +0 -0
  9. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/__init__.py +0 -0
  10. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/client.py +0 -0
  11. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/model/aep_response.py +0 -0
  12. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/model/connect_response.py +0 -0
  13. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  14. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  15. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/model/regions_response.py +0 -0
  16. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  17. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  18. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/aliyun/tmp_constant.py +0 -0
  19. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/__init__.py +0 -0
  20. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/ble.py +0 -0
  21. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/ble_message.py +0 -0
  22. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/const.py +0 -0
  23. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/data/__init__.py +0 -0
  24. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/data/convert.py +0 -0
  25. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  26. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/data/notifydata.py +0 -0
  27. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/model/__init__.py +0 -0
  28. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/bluetooth/model/atomic_integer.py +0 -0
  29. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/const.py +0 -0
  30. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/__init__.py +0 -0
  31. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/__init__.py +0 -0
  32. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/account.py +0 -0
  33. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/device.py +0 -0
  34. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/device_config.py +0 -0
  35. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/device_info.py +0 -0
  36. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/device_limits.py +0 -0
  37. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/enums.py +0 -0
  38. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/excute_boarder_params.py +0 -0
  39. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/execute_boarder.py +0 -0
  40. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/generate_route_information.py +0 -0
  41. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/hash_list.py +0 -0
  42. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/location.py +0 -0
  43. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/mowing_modes.py +0 -0
  44. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/plan.py +0 -0
  45. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/rapid_state.py +0 -0
  46. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/raw_data.py +0 -0
  47. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/region_data.py +0 -0
  48. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/model/report_info.py +0 -0
  49. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/mqtt/__init__.py +0 -0
  50. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/mqtt/event.py +0 -0
  51. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/mqtt/properties.py +0 -0
  52. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/mqtt/status.py +0 -0
  53. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/data/state_manager.py +0 -0
  54. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/event/__init__.py +0 -0
  55. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/event/event.py +0 -0
  56. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/http/_init_.py +0 -0
  57. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/http/encryption.py +0 -0
  58. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/http/http.py +0 -0
  59. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/http/model/http.py +0 -0
  60. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/__init__.py +0 -0
  61. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/__init__.py +0 -0
  62. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  63. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  64. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  65. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  66. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/messages/media.py +0 -0
  67. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  68. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/messages/network.py +0 -0
  69. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  70. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/messages/system.py +0 -0
  71. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/commands/messages/video.py +0 -0
  72. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/control/__init__.py +0 -0
  73. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/control/joystick.py +0 -0
  74. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/devices/__init__.py +0 -0
  75. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/devices/base.py +0 -0
  76. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/devices/mammotion.py +0 -0
  77. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/devices/mammotion_bluetooth.py +0 -0
  78. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mammotion/devices/mammotion_cloud.py +0 -0
  79. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mqtt/__init__.py +0 -0
  80. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mqtt/linkkit/__init__.py +0 -0
  81. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mqtt/linkkit/h2client.py +0 -0
  82. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mqtt/linkkit/linkkit.py +0 -0
  83. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mqtt/mammotion_future.py +0 -0
  84. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  85. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/__init__.py +0 -0
  86. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/basestation.proto +0 -0
  87. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/basestation_pb2.py +0 -0
  88. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/basestation_pb2.pyi +0 -0
  89. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/common.proto +0 -0
  90. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/common_pb2.py +0 -0
  91. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/common_pb2.pyi +0 -0
  92. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/dev_net.proto +0 -0
  93. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/dev_net_pb2.py +0 -0
  94. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  95. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/luba_msg.proto +0 -0
  96. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/luba_msg_pb2.py +0 -0
  97. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  98. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/luba_mul.proto +0 -0
  99. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/luba_mul_pb2.py +0 -0
  100. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  101. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_driver.proto +0 -0
  102. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  103. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  104. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_nav.proto +0 -0
  105. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  106. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  107. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_ota.proto +0 -0
  108. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  109. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  110. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_pept.proto +0 -0
  111. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  112. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  113. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_sys.proto +0 -0
  114. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  115. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  116. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/py.typed +0 -0
  117. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/utility/constant/__init__.py +0 -0
  118. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/utility/constant/device_constant.py +0 -0
  119. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/utility/conversions.py +0 -0
  120. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/utility/datatype_converter.py +0 -0
  121. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/utility/device_config.py +0 -0
  122. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/utility/device_type.py +0 -0
  123. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/utility/map.py +0 -0
  124. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/utility/movement.py +0 -0
  125. {pymammotion-0.4.23 → pymammotion-0.4.26}/pymammotion/utility/periodic.py +0 -0
  126. {pymammotion-0.4.23 → pymammotion-0.4.26}/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.23
3
+ Version: 0.4.26
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
@@ -11,7 +11,7 @@ import string
11
11
  import time
12
12
  import uuid
13
13
 
14
- from aiohttp import ClientSession
14
+ from aiohttp import ClientSession, ConnectionTimeoutError
15
15
  from alibabacloud_iot_api_gateway.models import CommonParams, Config, IoTApiRequest
16
16
  from alibabacloud_tea_util.client import Client as UtilClient
17
17
  from alibabacloud_tea_util.models import RuntimeOptions
@@ -24,6 +24,7 @@ from pymammotion.aliyun.model.dev_by_account_response import ListingDevByAccount
24
24
  from pymammotion.aliyun.model.login_by_oauth_response import LoginByOAuthResponse
25
25
  from pymammotion.aliyun.model.regions_response import RegionResponse
26
26
  from pymammotion.aliyun.model.session_by_authcode_response import SessionByAuthCodeResponse
27
+ from pymammotion.aliyun.regions import region_mappings
27
28
  from pymammotion.const import ALIYUN_DOMAIN, APP_KEY, APP_SECRET, APP_VERSION
28
29
  from pymammotion.http.http import MammotionHTTP
29
30
  from pymammotion.utility.datatype_converter import DatatypeConverter
@@ -178,14 +179,28 @@ class CloudIOTGateway:
178
179
  )
179
180
 
180
181
  # send request
181
- response = await client.async_do_request(
182
- "/living/account/region/get", "https", "POST", None, body, RuntimeOptions()
183
- )
184
- logger.debug(response.status_message)
185
- logger.debug(response.headers)
186
- logger.debug(response.status_code)
187
- logger.debug(response.body)
188
-
182
+ try:
183
+ response = await client.async_do_request(
184
+ "/living/account/region/get", "https", "POST", None, body, RuntimeOptions()
185
+ )
186
+ logger.debug(response.status_message)
187
+ logger.debug(response.headers)
188
+ logger.debug(response.status_code)
189
+ logger.debug(response.body)
190
+ except ConnectionTimeoutError:
191
+ body = {"data": {}, "code": 200}
192
+
193
+ region = region_mappings.get(country_code, "US")
194
+ body["data"]["shortRegionId"] = region
195
+ body["data"]["regionEnglishName"] = ""
196
+ body["data"]["oaApiGatewayEndpoint"] = f"living-account.{region}.aliyuncs.com"
197
+ body["data"]["regionId"] = region
198
+ body["data"]["mqttEndpoint"] = f"public.itls.{region}.aliyuncs.com:1883"
199
+ body["data"]["pushChannelEndpoint"] = f"living-accs.{region}.aliyuncs.com"
200
+ body["data"]["apiGatewayEndpoint"] = f"{region}.api-iot.aliyuncs.com"
201
+
202
+ RegionResponse.from_dict(body)
203
+ return body
189
204
  # Decode the response body
190
205
  response_body_str = response.body.decode("utf-8")
191
206
 
@@ -0,0 +1,62 @@
1
+ region_mappings = {
2
+ # Asia Pacific
3
+ "CN": "cn-hongkong", # China -> Hong Kong
4
+ "HK": "cn-hongkong", # Hong Kong
5
+ "TW": "cn-hongkong", # Taiwan -> Hong Kong
6
+ "MO": "cn-hongkong", # Macau -> Hong Kong
7
+ # Southeast Asia
8
+ "SG": "ap-southeast-1", # Singapore
9
+ "MY": "ap-southeast-3", # Malaysia
10
+ "ID": "ap-southeast-5", # Indonesia
11
+ "TH": "ap-southeast-1", # Thailand -> Singapore
12
+ "VN": "ap-southeast-1", # Vietnam -> Singapore
13
+ "PH": "ap-southeast-1", # Philippines -> Singapore
14
+ "BN": "ap-southeast-1", # Brunei -> Singapore
15
+ "KH": "ap-southeast-1", # Cambodia -> Singapore
16
+ "LA": "ap-southeast-1", # Laos -> Singapore
17
+ "MM": "ap-southeast-1", # Myanmar -> Singapore
18
+ # Australia/Oceania
19
+ "AU": "ap-southeast-2", # Australia
20
+ "NZ": "ap-southeast-2", # New Zealand -> Australia
21
+ "FJ": "ap-southeast-2", # Fiji -> Australia
22
+ "PG": "ap-southeast-2", # Papua New Guinea -> Australia
23
+ # South Asia
24
+ "IN": "ap-south-1", # India
25
+ "LK": "ap-south-1", # Sri Lanka -> India
26
+ "PK": "ap-south-1", # Pakistan -> India
27
+ "BD": "ap-south-1", # Bangladesh -> India
28
+ "NP": "ap-south-1", # Nepal -> India
29
+ "BT": "ap-south-1", # Bhutan -> India
30
+ "MV": "ap-south-1", # Maldives -> India
31
+ # Middle East
32
+ "AE": "me-east-1", # UAE
33
+ "SA": "me-east-1", # Saudi Arabia -> UAE
34
+ "QA": "me-east-1", # Qatar -> UAE
35
+ "KW": "me-east-1", # Kuwait -> UAE
36
+ "BH": "me-east-1", # Bahrain -> UAE
37
+ "OM": "me-east-1", # Oman -> UAE
38
+ "IL": "me-east-1", # Israel -> UAE
39
+ "TR": "me-east-1", # Turkey -> UAE
40
+ # Europe
41
+ "DE": "eu-central-1", # Germany
42
+ "FR": "eu-central-1", # France -> Germany
43
+ "IT": "eu-central-1", # Italy -> Germany
44
+ "ES": "eu-central-1", # Spain -> Germany
45
+ "GB": "eu-central-1", # UK -> Germany
46
+ "IE": "eu-central-1", # Ireland -> Germany
47
+ "NL": "eu-central-1", # Netherlands -> Germany
48
+ "BE": "eu-central-1", # Belgium -> Germany
49
+ "CH": "eu-central-1", # Switzerland -> Germany
50
+ "AT": "eu-central-1", # Austria -> Germany
51
+ "PL": "eu-central-1", # poland -> Germany
52
+ # North America
53
+ "US": "us-east-1", # USA
54
+ "CA": "us-east-1", # Canada -> US East
55
+ "MX": "us-west-1", # Mexico -> US West
56
+ # South America
57
+ "BR": "us-east-1", # Brazil -> US East
58
+ "AR": "us-east-1", # Argentina -> US East
59
+ "CL": "us-east-1", # Chile -> US East
60
+ "CO": "us-east-1", # Colombia -> US East
61
+ "PE": "us-east-1", # Peru -> US East
62
+ }
@@ -1,6 +1,7 @@
1
1
  import asyncio
2
2
  import logging
3
3
  import os
4
+ import socket
4
5
  import ssl
5
6
  import time
6
7
  from typing import Any
@@ -123,6 +124,7 @@ class TeaCore:
123
124
  await loop.run_in_executor(None, ssl_context.load_verify_locations, ca_cert)
124
125
  connector = aiohttp.TCPConnector(
125
126
  ssl=ssl_context,
127
+ family=socket.AF_INET,
126
128
  )
127
129
  else:
128
130
  verify = False
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "pymammotion"
7
- version = "0.4.23"
7
+ version = "0.4.26"
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.23"
69
+ current_version = "0.4.26"
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