如果PyGithub
对其类型有类型注释,那就太好了。 这将使用户能够围绕它构建更安全的代码并改进编辑器建议。 由于PyGithub
已经有一个明确定义的类型层次结构,因此已经有可以使用的类型,这很棒。
(实际上,我最初从描述中假设PyGithub
已被注释,并且很惊讶它没有被注释)。
这是您考虑过和/或愿意接受的吗?
如果维护者同意这个想法,我不介意研究它。
我对此没问题,但这不是一件小事。 也许在此之前我们应该将项目升级到 Python 3(因为 Python2 即将消失),这样我们就可以在任何地方使用 Python3 样式的类型注释。
可以使用https://github.com/Instagram/MonkeyType 等工具从存根文件内联应用类型注释。 因此,我们可能会开始编写存根,然后在放弃对 Py2 的支持后内联应用它们。
好的,我实际上已经开始研究@trickeydan 的想法。 我通过对 unittest 运行 MonkeyType 生成存根文件,并将它们写入 .py 文件旁边的 .piy 文件。 它将需要手动检查所有存根,因为 MonkeyType 似乎在这里和那里遗憾地错过了一些细节(因此可能需要一段时间)。
我认为还需要或多或少地导出我们在模块的__init__.py
中拥有的每种类型,以便人们将 PyGithub 的类型包含在他们的类型检查中。
如果有人感兴趣,您可以在此处查看进度: https :
到目前为止我注意到的唯一问题是 urllib3 似乎没有任何可用的输入信息,遗憾的是我们使用了它们的一些类型。
@zer0tonin让我们继续前进。 为什么不从您的分支机构打开 PR,以便我们进行审查。
urllib3
仅用于最近在#1002 中引入的 Retry 函数。 稍后让我们看看如何将存根添加到urllib3
。
于 #1231 关闭
将在 #1442 中添加 CI 强制执行
最有用的评论
可以使用https://github.com/Instagram/MonkeyType 等工具从存根文件内联应用类型注释。 因此,我们可能会开始编写存根,然后在放弃对 Py2 的支持后内联应用它们。