mirror of
https://github.com/KenanZhu/AutoLibrary.git
synced 2026-06-18 15:33:03 +08:00
refactor(autoscript): 对象化 ASEngine、移除旧变量导出、清理编排窗口解析逻辑
- ASEngine 转为类,目标变量注册作为 __init__ 接口,配套函数提取到 _helpers.py - Lua 函数重命名 CURRENT_DATE→datenow, CURRENT_TIME→timenow, date_add→dateadd 等 - __init__.py 移除 ALL_VARIABLES/_TARGET_VAR_DEFS/_MOCK_TYPE_VALUES 导出,替换为接口函数 - 编排窗口移除脚本→控件的反向解析逻辑,合并常量定义为查询接口 - 编辑窗口新增工具函数 Tab、Tab 键插入 4 空格、图标改用 setIcon 加载 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+34
-48
@@ -7,45 +7,25 @@ This software is provided "as is", without any warranty of any kind.
|
||||
You may use, modify, and distribute this file under the terms of the MIT License.
|
||||
See the LICENSE file for details.
|
||||
"""
|
||||
from autoscript.ASEngine import (
|
||||
execute,
|
||||
addTargetVar,
|
||||
resetEngine,
|
||||
META_VARS,
|
||||
)
|
||||
from autoscript.ASEngine import ASEngine
|
||||
|
||||
|
||||
__all__ = [
|
||||
"execute",
|
||||
"addTargetVar",
|
||||
"resetEngine",
|
||||
"registerDefaultTargetVars",
|
||||
"buildMockTargetData",
|
||||
"META_VARS",
|
||||
"ALL_VARIABLES",
|
||||
"_TARGET_VAR_DEFS",
|
||||
"_MOCK_TYPE_VALUES",
|
||||
"ASEngine",
|
||||
"createEngine",
|
||||
"createMockTargetData",
|
||||
"createAllVariablesTable",
|
||||
"createTargetVarDefs",
|
||||
]
|
||||
|
||||
|
||||
# Key paths into target_data dict for each target variable.
|
||||
# (name, type, key_path, display_name)
|
||||
_TARGET_VAR_DEFS = [
|
||||
("USERNAME", "String", ["username"], "用户名"),
|
||||
("USER_ENABLE", "Boolean",["enabled"], "用户启用"),
|
||||
("RESERVE_DATE", "Date", ["reserve_info", "date"], "预约日期"),
|
||||
("RESERVE_BEGIN_TIME", "Time", ["reserve_info", "begin_time", "time"], "预约开始时间"),
|
||||
("RESERVE_END_TIME", "Time", ["reserve_info", "end_time", "time"], "预约结束时间"),
|
||||
("USERNAME", "String", ["username"], "用户名"),
|
||||
("USER_ENABLE", "Boolean", ["enabled"], "用户启用"),
|
||||
("RESERVE_DATE", "Date", ["reserve_info", "date"], "预约日期"),
|
||||
("RESERVE_BEGIN_TIME", "Time", ["reserve_info", "begin_time", "time"], "预约开始时间"),
|
||||
("RESERVE_END_TIME", "Time", ["reserve_info", "end_time", "time"], "预约结束时间"),
|
||||
]
|
||||
|
||||
# All variables (display_name -> (name, type)), derived from target vars + meta vars.
|
||||
ALL_VARIABLES = {
|
||||
display_name: (name, var_type)
|
||||
for name, var_type, _, display_name in _TARGET_VAR_DEFS
|
||||
} | {
|
||||
v["display"]: (v["name"], v["type"])
|
||||
for v in META_VARS.values()
|
||||
}
|
||||
_MOCK_TYPE_VALUES = {
|
||||
"String": "__mock__",
|
||||
"Boolean": True,
|
||||
@@ -55,26 +35,32 @@ _MOCK_TYPE_VALUES = {
|
||||
"Float": 0.0,
|
||||
}
|
||||
|
||||
def buildMockTargetData(
|
||||
|
||||
def createAllVariablesTable(
|
||||
) -> dict:
|
||||
"""
|
||||
Build a target_data dict filled with type-appropriate mock values
|
||||
for all registered target variables.
|
||||
"""
|
||||
|
||||
return {
|
||||
displayName: (name, varType)
|
||||
for name, varType, _, displayName in _TARGET_VAR_DEFS
|
||||
}
|
||||
|
||||
def createTargetVarDefs(
|
||||
) -> list:
|
||||
|
||||
return list(_TARGET_VAR_DEFS)
|
||||
|
||||
def createMockTargetData(
|
||||
) -> dict:
|
||||
|
||||
data = {}
|
||||
for _, var_type, key_path, _ in _TARGET_VAR_DEFS:
|
||||
for _, varType, keyPath, _ in _TARGET_VAR_DEFS:
|
||||
d = data
|
||||
for key in key_path[:-1]:
|
||||
for key in keyPath[:-1]:
|
||||
d = d.setdefault(key, {})
|
||||
d[key_path[-1]] = _MOCK_TYPE_VALUES.get(var_type, "")
|
||||
d[keyPath[-1]] = _MOCK_TYPE_VALUES.get(varType, "")
|
||||
return data
|
||||
|
||||
def registerDefaultTargetVars(
|
||||
) -> None:
|
||||
"""
|
||||
Register all built-in target variables with the engine.
|
||||
This must be called before any script execution.
|
||||
Calling multiple times is idempotent (re-registers same keys).
|
||||
"""
|
||||
for name, var_type, key_path, display_name in _TARGET_VAR_DEFS:
|
||||
addTargetVar(name, var_type, key_path, display_name)
|
||||
def createEngine(
|
||||
) -> ASEngine:
|
||||
|
||||
return ASEngine(_TARGET_VAR_DEFS)
|
||||
|
||||
Reference in New Issue
Block a user