Add a way for mypy coverage reports to omit certain lines or functions from precision checking
还没有人认领这个 Issue。
评估
调研方向
该 issue 没有指明文件或测试。首先定位 mypy 的覆盖率精度报告和配置解析,然后跟踪如何识别被报告的使用情况。完成的标准是:用户可以为指定的函数或使用情况配置排除项,并且覆盖率报告会省略这些条目,同时不影响正常的类型检查。
由索引模型根据 Issue 内容生成。
描述
When looking at a coverage report which shows the precision of the types on my code, I very frequently find that the same handful of functions are responsible for lines being marked "imprecise".
In general:
- library or stdlib functions which really consume
Any, likeLogger.debug - library or stdlib functions which produce
Any, likesqlalchemy.orm.query.Query.scalar - functions in my own code where the type is
Anyto avoid other issues (e.g. absence of unsafe unions)
I would like to be able to tell mypy to exempt certain usages from its reporting.
Several tools support this via comments (# pragma: no cover, # fmt: off, # noqa), but coverage has another interface which may be better suited to mypy: you can specify expressions which are skipped. (tool.coverage.report.exclude_lines in pyproject.toml).
Being able to stipulate something like:
mypy-coverage-precision-exclude =
logging.Logger.debug
logging.Logger.error
sqlalchemy.orm.query.Query.scalar
mymodule.myfunc
would make the coverage reporting much more useful, because it would eliminate "false negatives" on lines that really ought to have imprecise types.
- 主要语言
- Python
- 星标
- 20.6k
- 派生
- 3.3k
- 平均合并
- 1 天 18 小时
- 30 天内合并 PR
- 54
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
python/mypy 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 75/100
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
-
bug
难度 2/5 1-3 小时 新手友好度 76/100
-
documentation
难度 2/5 1-3 小时 新手友好度 72/100
-
bug topic-configuration topic-error-reporting
难度 2/5 1-3 小时 新手友好度 68/100
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 86/100
zostera/django-bootstrap4#894 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
use-agent-os/agent-os#3276 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
zephyrproject-rtos/zephyr#119726 ·
-
area/auth bug comp/agent P3 platform/discord type/security
难度 2/5 1-3 小时 新手友好度 88/100
NousResearch/hermes-agent#117848 ·
-
难度 2/5 1-3 小时 新手友好度 82/100
zilliztech/memsearch#759 ·