Respect sys.platform platform check assertion inside functions
还没有人认领这个 Issue。
评估
调研方向
首先,在非 Windows 平台上复现该示例,并阅读链接的关于 sys.platform 检查的 mypy 文档。跟踪现有的顶层断言处理,然后为函数内部的断言添加回归测试覆盖,并验证仅限 Windows 的调用在 macOS 或 Linux 上能够通过类型检查。
由索引模型根据 Issue 内容生成。
描述
This is a feature request
From the docs
https://mypy.readthedocs.io/en/stable/common_issues.html#python-version-and-system-platform-checks
More specifically, mypy will understand the use of sys.version_info and sys.platform checks
within if/elif/else statements.
and
As a special case, you can also use one of these checks in a top-level (unindented) assert; this makes mypy skip the rest of the file.
It would be nice if this kind of code would also typecheck on mac/linux.
Currently the option is to refactor such that you can define the entire function within an if sys.platform == "win32"
class A:
def func_on_win_only() -> str:
assert sys.platform == "win32"
return sys.getwindowsversion()
- 主要语言
- 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 ·