我正在尝试开发一个类型感知包,遵循PEP-561。
- 包回购:https ://gitlab.com/fcomabella/ow-client
- 导入包的示例项目:https ://gitlab.com/fcomabella/test-owclient-types
- 真正的目标项目(一个 Gtk+ 应用程序):https ://gitlab.com/fcomabella/pi-homebrew
我希望第三个项目使用类型提示。我正在使用诗歌来管理包和 mypy 中的依赖关系来检查类型。
第二个项目只是导入包。它仅用作运行 mypy 命令的目标。
但是当我mypy test-owclient.py --follow-imports=error
在任何依赖项目中运行时,我得到以下错误:
test-owclient.py:1: error: Import of 'owclient' ignored
test-owclient.py:1: note: (Using --follow-imports=error, module not passed on command line)
Found 1 error in 1 file (checked 1 source file)
mypy 命令在我启动的 virtualenv shell 中启动poetry shell
。
最初我使用了诗歌构建和诗歌发布命令,但遇到了这里描述的问题:诗歌问题#1338
然后我尝试使用 setuptools,生成了我自己的 setup.py 文件,基于诗歌生成的文件,内容如下。
# -*- coding: utf-8 -*-
# type: ignore
from setuptools import setup
with open("README.rst", "r") as fh:
long_description = fh.read()
packages = ['owclient', 'owclient.devices', 'owclient.exc']
package_data = {
'owclient': ['py.typed'],
'owclient.devices': ['py.typed'],
'owclient.exc': ['py.typed'],
'*': ['pyproject.toml']
}
install_requires = ['pyownet>=0.10.0,<0.11.0']
setup(
name='owclient',
version='0.1.8',
description=(
'A light layer to use OWFS and pyownet with a more OOP approach.'),
long_description=long_description,
long_description_content_type='text/x-rst',
author='Ferran Comabella',
author_email='ferran@gmail.com',
maintainer=None,
maintainer_email=None,
url='https://gitlab.com/fcomabella/ow-client',
packages=packages,
package_data=package_data,
install_requires=install_requires,
python_requires='>=3.8,<4.0',
zip_safe=False,
)
但是,当我尝试在包含该包的项目中运行 mypy 时,我得到了相同的结果。
如果我mypy owclient --follow-imports=error
在 owclient 包中运行,我不会收到任何错误。
这些 mypy 错误是预期的吗?我能做些什么来纠正它们?