Pytype检查并推断Python代码的类型——不需要类型注解。Pytype可以:
Pytype是一个静态分析器,这意味着它不执行它所检查的代码。
谷歌的数千个项目都依赖pytype来保持其Python代码类型良好和无错误。
更多信息,请查看用户指南或FAQ。
要快速开始对一个文件或目录进行类型检查,你只需运行以下命令,用你的输入替换file_or_directory :
要在整个包上设置pytype,请将以下内容添加到包上级目录中的setup.cfg文件中,用包名替换package_name:
现在,你可以运行无参数命令pytype来对包进行类型检查。将pytype添加到你的自动化测试中也很容易;参见在Travis上运行pytype的GitHub项目的示例。
最后,pytype会生成含有推断出的类型信息的文件,默认情况下位于.pytype/pyi中。你可以使用此信息对相应的源文件进行类型注解,用文件的导入路径替换module.py:
你需要一个Python 2.7或3.5+解释器来运行pytype,还需要在$PATH中设置一个与所分析代码的Python版本相同的Python解释器。
平台支持:
Pytype可以通过pip来安装。注意,安装过程需要使用wheel和setuptools。(如果你在virtualenv中工作,这两个包应该已经存在。)
或者从GitHub上的源码进行安装 :
代替使用--recurse-submodules参数进行安装, 你也可以在pytype目录中使用以下命令来安装:
常见选项:
要获得选项的完整列表,请运行pytype --help。
除了上面所述,你还可以通过设置$TYPESHED_HOME来直接运行pytype命令使用定制的typeshed安装替代它自己的绑定副本。
为了方便起见,你可以将你的pytype配置保存在一个文件中。配置文件是一个带有[pytype]部分的INI-样式的文件;如果没有提供显式配置文件,pytype会从当前目录向上遍历查找第一个setup.cfg文件中的[pytype]部分。
我们从生成一个配置文件示例开始:
现在我们根据本地设置来自定义文件,只保留需要的部分。目录可能是配置文件的相对路径,如果你想将配置文件作为项目的一部分进行检查,这是非常有用的。
例如,假设你有以下目录结构,并且想要分析包 ~/repo1/foo,它依赖于包 ~/repo2/bar:
下面是设置好的配置文件,它将指示pytype将~/repo1/foo作为Python 3.6代码进行类型检查,在~/repo1和~/repo2中查找包,并忽略属性错误。注意,到包的路径不包括包本身。
我们可能会发现需要通过运行pytype的损坏依赖项检查器来将~/repo2添加到pythonpath中:
除了pytype本身外,Pytype还附带了三个脚本:
•支持Windows系统
Apache 2.0
本项目不是一个正式的Google产品。
英文原文:https://github.com/google/pytype
译者:一瞬