myy忽略包的类型,尽管' py.typed '



我使用poetry维护两个存储库,我们称它们为repo_mainrepo_dependency。它们都使用python 3.8并具有mypy(v0.942)类型提示,顾名思义,repo_main依赖于repo_dependency。现在,当我在repo_main上运行mypy时,repo_dependency的类型提示实际上被忽略了,并被有效地视为Anys。然后我尝试将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/

知道我可能做错了什么吗?

对我来说,从文档中根本看不清楚。添加py.typed文件并不能让mymyy在包源中查找类型信息。Mypy将只在存根文件中查找此类信息(对于外部包)。此外,将.pyi存根文件放在包源旁边也不会说服我查看这些存根文件。

因此,需要添加py.typed文件.pyi存根文件

对我来说,这似乎是非常多余的,这就是为什么我们需要两者的原因。

相关内容

最新更新