Sim*_*ini 8 python types python-3.x mypy python-poetry
我正在使用 维护两个存储库poetry
,我们称它们repo_main
为 和repo_dependency
。它们都使用python 3.8
并具有mypy
( v0.942
) 类型提示,并且顾名思义,repo_main
依赖于repo_dependency
。现在,当我mypy
在 上运行时repo_main
,类型提示repo_dependency
实际上被忽略并被有效地视为Any
s。然后我尝试将py.typed
文件添加到每个子包中,repo_dependency
但没有结果,类型仍然被忽略。的结构repo_dependency
看起来有点像这样:
repo_dependency/
- repo_dependency/
- package1/
- __init__.py
- py.typed
- stuff.py
- package2/
- __init__.py
- py.typed
- stuff.py
- __init__.py
- py.typed
- other_non_distributed_things/
Run Code Online (Sandbox Code Playgroud)
知道我可能做错了什么吗?
对我来说,文档中根本不清楚这一点。添加py.typed
文件不会让 mypy 查看包源以获取类型信息。Mypy 只会在存根文件中查找此类信息(对于外部包)。此外,将.pyi
存根文件放在包源旁边不会说服 mypy 查看这些存根文件。
因此,需要添加文件和存根文件py.typed
。.pyi
对我来说,这似乎非常多余,这就是为什么它\xe2\x80\x99 如此不直观,以至于我们需要两者。
\n 归档时间: |
|
查看次数: |
790 次 |
最近记录: |