taotoolkit 2.0.0__tar.gz → 2.0.1__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.
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/PKG-INFO +2 -2
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/pyproject.toml +2 -2
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit/__init__.py +1 -1
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit/tao_device.py +44 -4
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit.egg-info/PKG-INFO +2 -2
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit.egg-info/requires.txt +1 -1
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/README.md +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/setup.cfg +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit/asrVrf.py +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit/tao_camDvt.py +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit/tao_cmdTool.py +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit/tao_common.py +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit/tao_flash.py +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit/tao_tuning.py +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit/tao_vrfTool.py +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit.egg-info/SOURCES.txt +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit.egg-info/dependency_links.txt +0 -0
- {taotoolkit-2.0.0 → taotoolkit-2.0.1}/taotoolkit.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taotoolkit
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Tao ToolKit
|
|
5
5
|
Author-email: taotaoli <taotaoli@asrmicro.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -19,7 +19,7 @@ Requires-Dist: beautifulsoup4>=4.10.0
|
|
|
19
19
|
Requires-Dist: pyyaml>=6.0.3
|
|
20
20
|
Requires-Dist: pywinpty>=3.0.5; platform_system == "Windows"
|
|
21
21
|
Provides-Extra: uiautomator
|
|
22
|
-
Requires-Dist: uiautomator2>=2.0.
|
|
22
|
+
Requires-Dist: uiautomator2>=2.0.1; extra == "uiautomator"
|
|
23
23
|
|
|
24
24
|
# TAO - Toolkit
|
|
25
25
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "taotoolkit"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.1"
|
|
8
8
|
description = "Tao ToolKit"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -29,5 +29,5 @@ dependencies = [
|
|
|
29
29
|
|
|
30
30
|
[project.optional-dependencies]
|
|
31
31
|
uiautomator = [
|
|
32
|
-
"uiautomator2>=2.0.
|
|
32
|
+
"uiautomator2>=2.0.1",
|
|
33
33
|
]
|
|
@@ -1034,27 +1034,67 @@ class DevOp:
|
|
|
1034
1034
|
sleep(interval)
|
|
1035
1035
|
return False
|
|
1036
1036
|
|
|
1037
|
+
def getRefJpgSize(self, path: str, maxCount=5) -> Optional[int]:
|
|
1038
|
+
"""取目录内最近几张 jpg 的中位尺寸, 用于识别 offlineSession 先落盘的小图"""
|
|
1039
|
+
out = rCmd(f"adb -s {self.serial} shell ls -lt {path}")[0]
|
|
1040
|
+
sizes = []
|
|
1041
|
+
for line in out.splitlines():
|
|
1042
|
+
parts = line.split()
|
|
1043
|
+
if len(parts) < 5 or not parts[4].isdigit():
|
|
1044
|
+
continue
|
|
1045
|
+
fileName = parts[-1].lower()
|
|
1046
|
+
if fileName.endswith((".jpg", ".jpeg")) and "thumb" not in fileName:
|
|
1047
|
+
sizes.append(int(parts[4]))
|
|
1048
|
+
if len(sizes) >= maxCount:
|
|
1049
|
+
break
|
|
1050
|
+
if not sizes:
|
|
1051
|
+
return None
|
|
1052
|
+
sizes.sort()
|
|
1053
|
+
return sizes[len(sizes) // 2]
|
|
1054
|
+
|
|
1037
1055
|
def capJPG(self, name="null", wait=10):
|
|
1038
1056
|
outPath = self.curPath
|
|
1039
1057
|
logi(f"capture {os.path.join(outPath, name)}.jpg")
|
|
1040
1058
|
jpgPath = r"/sdcard/DCIM/Camera/"
|
|
1041
1059
|
oldFileList = self.getSuffixList(jpgPath, "jpg", "jpeg")
|
|
1060
|
+
refSize = self.getRefJpgSize(jpgPath)
|
|
1061
|
+
logd(f"ref jpg size {refSize}")
|
|
1042
1062
|
cmd = f"adb -s {self.serial} shell input keyevent 27"
|
|
1043
1063
|
rCmd(cmd, showCmd=True, logLevel="info")
|
|
1044
1064
|
|
|
1045
1065
|
# 轮询替代固定等待: wait 为总超时(秒), 新文件写入稳定后立即返回
|
|
1066
|
+
# offlineSession 会先落一张小图(如 1440x1080)再替换为满尺寸图, 仅判稳定会拉到小图,
|
|
1067
|
+
# 故尺寸明显小于历史照片时跳过, 等大图替换完成; 无历史照片时加长稳定窗口
|
|
1068
|
+
stable_s = 1.0 if refSize else 2.5
|
|
1046
1069
|
deadline = time.time() + wait
|
|
1047
1070
|
jpgName = None
|
|
1071
|
+
fallbackName = None
|
|
1072
|
+
fallbackSize = 0
|
|
1048
1073
|
while time.time() < deadline:
|
|
1049
1074
|
fileList = [f for f in self.getSuffixList(jpgPath, "jpg", "jpeg") if "~" not in f]
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1075
|
+
for file in [f for f in fileList if f not in oldFileList]:
|
|
1076
|
+
size = self.getRemoteFileSize(jpgPath + file)
|
|
1077
|
+
if not size:
|
|
1078
|
+
continue
|
|
1079
|
+
if size > fallbackSize:
|
|
1080
|
+
fallbackName = file
|
|
1081
|
+
fallbackSize = size
|
|
1082
|
+
if refSize and size < refSize * 0.5:
|
|
1083
|
+
logd(f"skip intermediate jpg {file} size {size} < ref {refSize}")
|
|
1084
|
+
continue
|
|
1085
|
+
jpgName = file
|
|
1086
|
+
break
|
|
1087
|
+
if jpgName is not None:
|
|
1088
|
+
if self.waitFileStable(jpgPath + jpgName, timeOut=max(deadline - time.time(), 1.0), stable_s=stable_s):
|
|
1054
1089
|
break
|
|
1055
1090
|
jpgName = None
|
|
1056
1091
|
sleep(0.2)
|
|
1057
1092
|
|
|
1093
|
+
if jpgName is None and fallbackName is not None:
|
|
1094
|
+
# 超时仍无满尺寸图时退回最大新文件, 避免直接失败
|
|
1095
|
+
logw(f"no full-size jpg before timeout, use largest new file {fallbackName}")
|
|
1096
|
+
if self.waitFileStable(jpgPath + fallbackName, timeOut=1.0, stable_s=0.5):
|
|
1097
|
+
jpgName = fallbackName
|
|
1058
1098
|
if jpgName is None:
|
|
1059
1099
|
loge(f"capture {os.path.join(outPath, name)}.jpg failed")
|
|
1060
1100
|
return False
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taotoolkit
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Tao ToolKit
|
|
5
5
|
Author-email: taotaoli <taotaoli@asrmicro.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -19,7 +19,7 @@ Requires-Dist: beautifulsoup4>=4.10.0
|
|
|
19
19
|
Requires-Dist: pyyaml>=6.0.3
|
|
20
20
|
Requires-Dist: pywinpty>=3.0.5; platform_system == "Windows"
|
|
21
21
|
Provides-Extra: uiautomator
|
|
22
|
-
Requires-Dist: uiautomator2>=2.0.
|
|
22
|
+
Requires-Dist: uiautomator2>=2.0.1; extra == "uiautomator"
|
|
23
23
|
|
|
24
24
|
# TAO - Toolkit
|
|
25
25
|
|
|
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
|