SuperAPI AI 工具集

fix-types

编程与开发

查看项目

更新于 10-16 05:50

技能介绍

用途:fix-types 用于交互式修复 Python 代码中的类型检查问题,偏向 Django 项目。

主要流程:先运行类型检查器查看问题:uv run mypy .,把发现的错误归入逻辑分组;然后按组逐个处理每个错误,先说明准备应用的修复,询问是否有疑问或建议,只有获得批准后才应用修复并继续下一个错误;完成一组后询问是否进入下一组。

主要约定:当 mypy 无法推断正确类型时,优先使用 cast() 而不是 # type: ignore,因为 cast() 显式记录预期类型、更易读可维护,且不会同时屏蔽同一行的其他潜在错误。为满足 mypy 添加空值检查时,优先抛出正式异常而非使用 assert,理由是 assert 可被 python -O 禁用,正式异常能保证检查始终执行并提供更好的错误处理。若确实需要 type: ignore(如 mypy 对有效代码的限制),必须附上简短说明。

Django 惰性翻译字符串的类型提示:使用 gettext_lazy 时,为避免 mypy 报错且在未安装 django-stubs-ext 的生产环境正常工作,采用如下模式:from future import annotations 必须放在首位;用 typing.TYPE_CHECKING 条件导入 django_stubs_ext 的 StrOrPromise;然后在类型提示中使用 StrOrPromise。原因是 from future import annotations 使注解在运行时成为字符串而不被求值,TYPE_CHECKING 保证该导入仅在类型检查时发生,django-stubs-ext 是开发依赖、生产环境不可用;该模式同时接受普通字符串和惰性翻译字符串。

适用场景:需要在 Django 或其他 Python 项目中系统性地清理 mypy 类型错误、并希望获得逐项确认的团队或个人。

限制:资料未提供该技能的具体安装方式、支持版本、性能数据或收费信息;实际行为以运行 uv run mypy . 的结果为准。