taotoolkit 2.0.1__tar.gz → 2.0.2__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.1 → taotoolkit-2.0.2}/PKG-INFO +2 -2
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/pyproject.toml +2 -2
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit/__init__.py +8 -1
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit/tao_device.py +16 -7
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit/tao_flash.py +5 -3
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit/tao_tuning.py +36 -8
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit.egg-info/PKG-INFO +2 -2
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit.egg-info/requires.txt +1 -1
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/README.md +0 -0
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/setup.cfg +0 -0
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit/asrVrf.py +0 -0
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit/tao_camDvt.py +0 -0
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit/tao_cmdTool.py +0 -0
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit/tao_common.py +0 -0
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit/tao_vrfTool.py +0 -0
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit.egg-info/SOURCES.txt +0 -0
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/taotoolkit.egg-info/dependency_links.txt +0 -0
- {taotoolkit-2.0.1 → taotoolkit-2.0.2}/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.2
|
|
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.2; 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.2"
|
|
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.2",
|
|
33
33
|
]
|
|
@@ -25,6 +25,10 @@ from .tao_common import (
|
|
|
25
25
|
sysVersion,
|
|
26
26
|
sleep,
|
|
27
27
|
parseArgs,
|
|
28
|
+
renameFile,
|
|
29
|
+
findFilesBySuffixKeyword,
|
|
30
|
+
findFilesWithSuffix,
|
|
31
|
+
removeAnyContainStr,
|
|
28
32
|
)
|
|
29
33
|
|
|
30
34
|
# 导入各模块
|
|
@@ -39,7 +43,7 @@ from .tao_camDvt import camDvtMain as camDvtMain, printHelp as camDvtHelp, CamDv
|
|
|
39
43
|
|
|
40
44
|
from .asrVrf import Vrf
|
|
41
45
|
|
|
42
|
-
__version__ = "2.0.
|
|
46
|
+
__version__ = "2.0.2"
|
|
43
47
|
|
|
44
48
|
__all__ = [
|
|
45
49
|
"debugCtrl",
|
|
@@ -63,6 +67,9 @@ __all__ = [
|
|
|
63
67
|
"createFolder",
|
|
64
68
|
"fileExist",
|
|
65
69
|
"findFilesBySuffixKeyword",
|
|
70
|
+
"findFilesWithSuffix",
|
|
71
|
+
"removeAnyContainStr",
|
|
72
|
+
"renameFile",
|
|
66
73
|
"normalize_args",
|
|
67
74
|
"register_command",
|
|
68
75
|
"sysVersion",
|
|
@@ -1246,20 +1246,25 @@ class DevOp:
|
|
|
1246
1246
|
|
|
1247
1247
|
def CLI_pushSo(argsList):
|
|
1248
1248
|
parser = argparse.ArgumentParser(prog="pushso", description="android设备push so文件")
|
|
1249
|
-
parser.add_argument("
|
|
1249
|
+
parser.add_argument("posPath", nargs="*", default=None, help="so文件名或路径, 可直接输入(pushso xxx.so)")
|
|
1250
|
+
parser.add_argument("-p", "--path", required=False, nargs="+", default=None, help="so文件名或路径,支持多so文件 push")
|
|
1250
1251
|
parser.add_argument("-s", "--serial", type=str, default="", help="设备SN号(多设备需指定)")
|
|
1251
1252
|
args = parser.parse_args(argsList)
|
|
1252
1253
|
|
|
1254
|
+
paths = list(args.path or []) + list(args.posPath or [])
|
|
1255
|
+
if not paths:
|
|
1256
|
+
parser.error("至少需要指定一个so文件或路径")
|
|
1257
|
+
|
|
1253
1258
|
dev = DevOp(args.serial)
|
|
1254
1259
|
so = []
|
|
1255
|
-
if len(
|
|
1256
|
-
if os.path.isdir(
|
|
1257
|
-
so = findFilesBySuffixKeyword(
|
|
1260
|
+
if len(paths) == 1:
|
|
1261
|
+
if os.path.isdir(paths[0]):
|
|
1262
|
+
so = findFilesBySuffixKeyword(paths[0], ".so", "")
|
|
1258
1263
|
dev.pushso(so)
|
|
1259
1264
|
else:
|
|
1260
|
-
dev.pushso(
|
|
1265
|
+
dev.pushso(paths)
|
|
1261
1266
|
else:
|
|
1262
|
-
dev.pushso(
|
|
1267
|
+
dev.pushso(paths)
|
|
1263
1268
|
|
|
1264
1269
|
|
|
1265
1270
|
def CLI_scrcpy(argsList):
|
|
@@ -1335,6 +1340,7 @@ def CLI_screenCap(argsList):
|
|
|
1335
1340
|
|
|
1336
1341
|
# 默认:主屏或指定 display_id
|
|
1337
1342
|
dev.adbScreenCap(args.file, display_id=args.display, hdr=args.hdr)
|
|
1343
|
+
logi(f"screen capture {args.file}.png")
|
|
1338
1344
|
|
|
1339
1345
|
|
|
1340
1346
|
def CLI_screenRec(argsList):
|
|
@@ -1427,12 +1433,15 @@ def CLI_kcam(args):
|
|
|
1427
1433
|
|
|
1428
1434
|
def _capJpg(argsList):
|
|
1429
1435
|
parser = argparse.ArgumentParser(prog="capjpg", description="拍摄jpg并导出到PC指定文件名")
|
|
1430
|
-
parser.add_argument("
|
|
1436
|
+
parser.add_argument("posFile", nargs="?", default=None, help="jpg名称,无需后缀, 可直接输入(capjpg test)")
|
|
1437
|
+
parser.add_argument("-f", "--file", type=str, default="null", help="jpg名称,无需后缀")
|
|
1431
1438
|
parser.add_argument("-s", "--serial", type=str, default="", help="设备SN号")
|
|
1432
1439
|
parser.add_argument("-w", "--wait", type=int, default=10, help="拍照后等待新照片写入完成的超时时间,单位秒,default 10s")
|
|
1433
1440
|
parser.add_argument("-d", "--devname", type=str, default=None, help="jpg名称后缀标签")
|
|
1434
1441
|
parser.add_argument("--reset", action="store_true", help="清除缓存,重新扫描设备")
|
|
1435
1442
|
args = parser.parse_args(argsList)
|
|
1443
|
+
if args.file == "null" and args.posFile is not None:
|
|
1444
|
+
args.file = args.posFile
|
|
1436
1445
|
if args.reset and os.path.exists(CACHE_FILE):
|
|
1437
1446
|
os.remove(CACHE_FILE)
|
|
1438
1447
|
logi("[cache] 缓存已清除")
|
|
@@ -748,9 +748,11 @@ class jenkinsTool:
|
|
|
748
748
|
else:
|
|
749
749
|
cmd = f"{self.aimgTool} download -t {finalCfg}"
|
|
750
750
|
if sysVersion == "linux":
|
|
751
|
-
oCmd(cmd, sleep_s=1.0, showCmd=
|
|
751
|
+
oCmd(cmd, sleep_s=1.0, showCmd=False, logLevel="info")
|
|
752
752
|
else:
|
|
753
|
-
rCmdRealtime(cmd, showCmd=
|
|
753
|
+
rCmdRealtime(cmd, showCmd=False, logLevel="info")
|
|
754
|
+
|
|
755
|
+
logh(cmd)
|
|
754
756
|
|
|
755
757
|
def joinBackslash(self, *args):
|
|
756
758
|
# 将字符串用/拼接起来,最后一个不加
|
|
@@ -776,7 +778,7 @@ class jenkinsTool:
|
|
|
776
778
|
buildNumber, targetUrl = self.findTargetBuild(buildNumber, self.ciOwner, ciTag, buildBoard)
|
|
777
779
|
buildBoard = targetUrl.split("/")[-2]
|
|
778
780
|
|
|
779
|
-
|
|
781
|
+
logh(f"download {buildNumber} {targetUrl}")
|
|
780
782
|
|
|
781
783
|
packageName = buildTag + buildNumber + "android" + adVersion + "_" + buildBoard
|
|
782
784
|
imgName = os.path.join(self.downloadPath, packageName + ".zip")
|
|
@@ -717,9 +717,9 @@ class asrCamOp(DevOp):
|
|
|
717
717
|
woke = False
|
|
718
718
|
while True:
|
|
719
719
|
if not self.uiClick(textList, slp=0):
|
|
720
|
-
# 相机控制面板会自动隐藏,
|
|
720
|
+
# 相机控制面板会自动隐藏, 轻点预览区中心唤出后再试(参考分辨率坐标, adbTap 内部按实际分辨率换算)
|
|
721
721
|
if not woke:
|
|
722
|
-
self.adbTap((
|
|
722
|
+
self.adbTap((self.refScreenW // 2, self.refScreenH // 2), 0)
|
|
723
723
|
woke = True
|
|
724
724
|
if time.time() >= deadline:
|
|
725
725
|
loge(f"switch to {'video' if video else 'preview'} mode timeout")
|
|
@@ -1194,8 +1194,13 @@ class asrCamOp(DevOp):
|
|
|
1194
1194
|
|
|
1195
1195
|
def CLI_tuningRemoveInfo(argsList):
|
|
1196
1196
|
parser = argparse.ArgumentParser(prog="tuningRemoveInfo", description="移除tuning参数fw_info")
|
|
1197
|
-
parser.add_argument("
|
|
1197
|
+
parser.add_argument("posPath", nargs="?", default=None, help="tuning文件名或路径, 可直接输入(tuningr xxx.data)")
|
|
1198
|
+
parser.add_argument("-p", "--path", required=False, default=None, help="tuning文件名或路径")
|
|
1198
1199
|
args = parser.parse_args(argsList)
|
|
1200
|
+
if args.path is None:
|
|
1201
|
+
args.path = args.posPath
|
|
1202
|
+
if args.path is None:
|
|
1203
|
+
parser.error("至少需要指定tuning文件名或路径")
|
|
1199
1204
|
inFile = args.path
|
|
1200
1205
|
if os.path.isfile(inFile):
|
|
1201
1206
|
_fileProcessTuningRemoveInfo(inFile)
|
|
@@ -1223,7 +1228,8 @@ def CLI_tuningRemoveInfo(argsList):
|
|
|
1223
1228
|
|
|
1224
1229
|
def CLI_pushVrf(argsList):
|
|
1225
1230
|
parser = argparse.ArgumentParser(prog="pushvrf", description="push vrf到设备")
|
|
1226
|
-
parser.add_argument("
|
|
1231
|
+
parser.add_argument("posPath", nargs="?", default=None, help="vrf文件名或路径, 可直接输入(psvrf xxx.vrf)")
|
|
1232
|
+
parser.add_argument("-p", "--path", required=False, default=None, help="vrf文件名或路径")
|
|
1227
1233
|
parser.add_argument(
|
|
1228
1234
|
"-i",
|
|
1229
1235
|
"--index",
|
|
@@ -1239,6 +1245,10 @@ def CLI_pushVrf(argsList):
|
|
|
1239
1245
|
parser.add_argument("--matchcase", action="store_true", dest="matchcase", help="是否区分tag大小写")
|
|
1240
1246
|
parser.set_defaults(matchcase=False)
|
|
1241
1247
|
args = parser.parse_args(argsList)
|
|
1248
|
+
if args.path is None:
|
|
1249
|
+
args.path = args.posPath
|
|
1250
|
+
if args.path is None:
|
|
1251
|
+
parser.error("至少需要指定vrf文件名或路径")
|
|
1242
1252
|
|
|
1243
1253
|
logi(f"psvrf {args.path} indxe={args.index}, rename={args.rename}, ignoreTag={args.tag}, matchcase={args.matchcase}")
|
|
1244
1254
|
|
|
@@ -1251,8 +1261,11 @@ def CLI_pushVrf(argsList):
|
|
|
1251
1261
|
|
|
1252
1262
|
def CLI_capVrf(argsList):
|
|
1253
1263
|
parser = argparse.ArgumentParser(prog="capvrf", description="抓取vrf")
|
|
1254
|
-
parser.add_argument("
|
|
1264
|
+
parser.add_argument("posFile", nargs="?", default=None, help="抓取vrf 文件名,,无需后缀 可直接输入(capvrf test)")
|
|
1265
|
+
parser.add_argument("-f", "--file", type=str, required=False, help="抓取vrf 文件名,无需后缀")
|
|
1255
1266
|
args = parser.parse_args(argsList)
|
|
1267
|
+
if args.file is None and args.posFile is not None:
|
|
1268
|
+
args.file = args.posFile
|
|
1256
1269
|
asrCam = asrCamOp(True)
|
|
1257
1270
|
asrCam.setRawDump(1)
|
|
1258
1271
|
ok = False
|
|
@@ -1320,8 +1333,13 @@ def CLI_saveTuning(argsList):
|
|
|
1320
1333
|
|
|
1321
1334
|
def CLI_pushTuning(argsList):
|
|
1322
1335
|
parser = argparse.ArgumentParser(prog="pushtuning", description="push tuning参数")
|
|
1323
|
-
parser.add_argument("
|
|
1336
|
+
parser.add_argument("posPath", nargs="?", default=None, help="push tuning文件名或路径, 可直接输入(pushtuning xxx.data)")
|
|
1337
|
+
parser.add_argument("-p", "--path", required=False, default=None, help="push tuning文件名或路径")
|
|
1324
1338
|
args = parser.parse_args(argsList)
|
|
1339
|
+
if args.path is None:
|
|
1340
|
+
args.path = args.posPath
|
|
1341
|
+
if args.path is None:
|
|
1342
|
+
parser.error("至少需要指定tuning文件名或路径")
|
|
1325
1343
|
inFile = args.path
|
|
1326
1344
|
asrCam = asrCamOp()
|
|
1327
1345
|
if os.path.isfile(inFile):
|
|
@@ -1337,9 +1355,14 @@ def CLI_pushTuning(argsList):
|
|
|
1337
1355
|
|
|
1338
1356
|
def CLI_tuning2c(argsList):
|
|
1339
1357
|
parser = argparse.ArgumentParser(prog="tuning2c", description="tuning参数转 .h文件")
|
|
1340
|
-
parser.add_argument("
|
|
1358
|
+
parser.add_argument("posPath", nargs="?", default=None, help="tuning文件名或路径, 可直接输入(tuning2c xxx.data)")
|
|
1359
|
+
parser.add_argument("-p", "--path", required=False, default=None, help="tuning文件名或路径")
|
|
1341
1360
|
parser.add_argument("-s", "--prefix", required=False, help="转为头文件替换的前缀")
|
|
1342
1361
|
args = parser.parse_args(argsList)
|
|
1362
|
+
if args.path is None:
|
|
1363
|
+
args.path = args.posPath
|
|
1364
|
+
if args.path is None:
|
|
1365
|
+
parser.error("至少需要指定tuning文件名或路径")
|
|
1343
1366
|
|
|
1344
1367
|
inFile = args.path
|
|
1345
1368
|
sensorName = args.prefix
|
|
@@ -1373,9 +1396,14 @@ def CLI_tuning2c(argsList):
|
|
|
1373
1396
|
|
|
1374
1397
|
def CLI_c2tuning(argsList):
|
|
1375
1398
|
parser = argparse.ArgumentParser(prog="c2tuning", description="将 .h文件转为 tuning文件")
|
|
1376
|
-
parser.add_argument("
|
|
1399
|
+
parser.add_argument("posPath", nargs="?", default=None, help="tuning文件名或路径, 可直接输入(c2tuning xxx.h)")
|
|
1400
|
+
parser.add_argument("-p", "--path", required=False, default=None, help="tuning文件名或路径")
|
|
1377
1401
|
parser.add_argument("-s", "--prefix", required=False, help="转为头文件替换的前缀")
|
|
1378
1402
|
args = parser.parse_args(argsList)
|
|
1403
|
+
if args.path is None:
|
|
1404
|
+
args.path = args.posPath
|
|
1405
|
+
if args.path is None:
|
|
1406
|
+
parser.error("至少需要指定tuning文件名或路径")
|
|
1379
1407
|
|
|
1380
1408
|
sensorName = args.prefix
|
|
1381
1409
|
inFile = args.path
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taotoolkit
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.2
|
|
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.2; 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
|