chore: auto release commit (2026-07-03 12:09:55)
All checks were successful
技能自动化发布 / release (push) Successful in 5s

This commit is contained in:
2026-07-03 12:09:55 +08:00
parent 7136689efe
commit 4a0be93b4a
22 changed files with 1613 additions and 575 deletions

View File

@@ -1,4 +1,4 @@
"""CLIargparse 与分发模板"""
"""CLIargparse 与分发。"""
from __future__ import annotations
@@ -16,7 +16,7 @@ from service.task_service import (
)
from util.config_bootstrap import bootstrap_skill_config
from util.argparse_zh import ZhArgumentParser
from util.constants import LOG_LOGGER_NAME, SKILL_SLUG
from util.constants import DEFAULT_DATE_FROM, DEFAULT_DATE_TO, LOG_LOGGER_NAME, SKILL_SLUG
from util.logging_config import get_skill_logger, setup_skill_logging
@@ -28,32 +28,16 @@ def _cli_str_or_none(raw: Optional[str]) -> Optional[str]:
def _handle_run(args: argparse.Namespace) -> int:
tail = [str(x).strip() for x in (args.run_tail or []) if str(x).strip()]
if len(tail) > 2:
print("❌ 参数过多。")
print("用法python main.py run [target [input_id]] | run [-t target] [-i input_id]")
return 1
t_target: Optional[str] = None
t_input: Optional[str] = None
if len(tail) == 2:
t_target, t_input = tail[0], tail[1]
elif len(tail) == 1:
if tail[0].isdigit():
t_input = tail[0]
else:
t_target = tail[0]
pick_t = _cli_str_or_none(getattr(args, "target", None))
pick_i = _cli_str_or_none(getattr(args, "input_id", None))
target = pick_t or t_target
input_id = pick_i or t_input
return cmd_run(target=target, input_id=input_id)
return cmd_run(
date_from=_cli_str_or_none(getattr(args, "date_from", None)),
date_to=_cli_str_or_none(getattr(args, "date_to", None)),
seller_code=_cli_str_or_none(getattr(args, "seller_code", None)),
)
def _print_full_usage() -> None:
print("通用业务技能模板main.py可用命令")
print(" python main.py run [target [input_id]] [-t target] [-i input_id]")
print("Amazon 结算报表自动下载main.py可用命令")
print(" python main.py run --date-from YYYY-MM-DD --date-to YYYY-MM-DD [--seller-code CODE]")
print(" python main.py logs [--limit N] [--status s] [--task-type t] [--target-id tid]")
print(" python main.py log-get <log_id>")
print(" python main.py health")
@@ -64,15 +48,31 @@ def _print_full_usage() -> None:
def build_parser() -> ZhArgumentParser:
p = ZhArgumentParser(
prog="main.py",
description="通用业务技能模板:任务执行命令骨架、日志查询、健康检查、版本输出",
description="Amazon 结算报表自动下载:请求并下载 Settlement xlsx写入任务日志",
formatter_class=argparse.RawDescriptionHelpFormatter,
)
sub = p.add_subparsers(dest="cmd", required=True, parser_class=ZhArgumentParser)
sp = sub.add_parser("run", help="任务执行命令骨架")
sp.add_argument("--target", "-t", default=None, metavar="目标")
sp.add_argument("--input-id", "-i", default=None, metavar="输入id", dest="input_id")
sp.add_argument("run_tail", nargs="*", metavar="位置参数")
sp = sub.add_parser("run", help="下载指定日期范围的结算报表")
sp.add_argument(
"--date-from",
default=DEFAULT_DATE_FROM,
metavar="起始日期",
help=f"起始日期 YYYY-MM-DD默认 {DEFAULT_DATE_FROM}",
)
sp.add_argument(
"--date-to",
default=DEFAULT_DATE_TO,
metavar="结束日期",
help=f"结束日期 YYYY-MM-DD默认 {DEFAULT_DATE_TO}",
)
sp.add_argument(
"--seller-code",
default=None,
metavar="店铺代码",
dest="seller_code",
help="可选;默认使用页面第一个 seller",
)
sp.set_defaults(handler=_handle_run)
sp = sub.add_parser("logs", help="查看任务日志")
@@ -107,10 +107,6 @@ def main(argv: Optional[List[str]] = None) -> int:
if not argv:
_print_full_usage()
return 1
if len(argv) == 2 and argv[0] not in {
"run", "logs", "log-get", "health", "config-path", "version", "-h", "--help"
}:
return cmd_run(target=argv[0], input_id=argv[1])
parser = build_parser()
args = parser.parse_args(argv)
return int(args.handler(args))