Instagram开源了 MonkeyType,它是通过运行时跟踪类型自动将类型注释添加到您的Python3代码的工具。
在MonkeyType可以告诉我们任何有用的东西之前,我们需要让它跟踪一些函数调用。最简单的方法是monkeytyperun在MonkeyType跟踪下运行任何Python脚本。例如,您可以在MonkeyType下轻松运行您的测试套件:
$ monkeytype run runtests.py(或者monkeytyperun`whichpytest`)
当你的测试运行时,MonkeyType检查每个函数调用的参数类型和返回/yield类型,并将它们记录在数据库中。(默认情况下,它将它们保存在本地SQLite数据库中,但像MonkeyType一样,这是可配置的。)
当然,你的测试套件可能不提供最好的类型信息-有时候测试使用的是假类型,而不是真正的类型,我们发现很多情况下类型检查显示我们的测试意外地从生产中传入不同的类型。因此,如果您不想基于测试套件进行注释,则可以记录生产运行时的调用跟踪。对于这个用例,MonkeyType提供了一个上下文管理器API:
from monkeytype import tracewith trace(): # ...
评论