typeshed-Python标准库和Python内置程序的外部类型注释,可用于静态分析、类型检查或类型推断
Typeshed包含Python标准库和Python内置程序的外部类型注释,以及由那些项目外部人员提供的第三方程序包。
该数据可以用于静态分析,类型检查或类型推断。
Typeshed支持Python 2.7和3.6及更高版本。
使用
如果您只是使用mypy(或pytype、PyCharm),而不是开发它,则根本不需要与已排版的存储库进行交互:typeshed的副本与mypy捆绑在一起。
当您使用mypy回购的已签出副本时,应使用以下内容将typeshed的副本作为子模块包括在内:
$ git clone --recurse-submodules github.com/python/mypy.git
或者您也可以使用下面的方法:
$ git clone github.com/python/mypy.git$ cd mypy$ git submodule init$ git submodule update
有时,您将不得不重复最后的命令(git submodule update),以提取在上游分拣仓库中所做的更改。
PyCharm和pytype同样包含typeshed的副本。如果您使用pytype仓库,可以用相同的方式更新pytype中的一个。
格式
每个Python模块都由一个.pyi“存根文件”表示。这是一个语法有效的Python文件,尽管它通常无法由Python 3运行(因为前向引用不需要字符串引号)。所有方法均为空。
Python函数注释(PEP 3107)用于描述每个函数或方法的签名。
见PEP 484的存根文件的确切语法和CONTRIBUTING.md在typeshed使用的编码风格。
运行测试
测试将在每个PR上自动运行,并推送到仓库。
有几种测试:
tests/mypy_test.py
用mypy进行的测试tests/pytype_test.py
用pytype排版的测试 。tests/mypy_self_check.py
使用此版本的shedshed检查mypy的代码库。tests/mypy_test_suite.py
使用此版本的typeshed运行mypy测试套件的子集。tests/check_consistent.py
检查分页中的某些文件是否彼此一致。tests/stubtest_test.py
在运行时针对对象检查存根。flake8
实施样式指南。