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实施样式指南。