已开启
[Bug] eval-skill 类型注解导致旧版 Python 导入失败,与 README 的 Python 3.7+ 要求不一致 #8
Eddie3226创建于  1 天前
Eddie3226
1 天前 创建

问题描述

skills/cann-log-analysis/readme.md 的“前置条件”声明:
Python 3.7+(用于运行清洗脚本)。

eval-skill/scripts/ 下的脚本使用了旧版 Python 不支持在运行时求值的类型注解,导致导入或启动时抛出 TypeError,连 --help 都无法正常执行。

受影响的脚本

  • clean.py:使用 datetime | Nonelist[str],在 Python 3.7–3.9 下导入失败。
  • assess_confidence.py:使用 tuple[str, str],在 Python 3.7/3.8 下导入失败;Python 3.9 可以导入。
  • promote_case.py:使用内置集合泛型及 str | Nonedict | None,在 Python 3.7–3.9 下导入失败。

复现方法

在仓库根目录,使用对应版本的 Python 执行:

python3.8 skills/cann-log-analysis/eval-skill/scripts/clean.py --help
python3.8 skills/cann-log-analysis/eval-skill/scripts/assess_confidence.py --help
python3.9 skills/cann-log-analysis/eval-skill/scripts/promote_case.py --help

典型错误:

TypeError: 'type' object is not subscriptable
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

期望行为

脚本能够在文档声明支持的 Python 版本下正常导入和运行。

建议将相关类型注解改为兼容旧版本的
typing.Listtyping.Tupletyping.Dicttyping.Optional
并补充旧版本 Python 的启动检查。

likedislike