自动创建.pyi文件?

gue*_*tli 19 python type-hinting pycharm

如何自动创建pyi文件的样板代码?

我想创建一个保华集团作为描述类型提示文件pep484其中包含了所有的方法名.

我不想要魔法.我想在自动创建文件后添加类型信息.

我想避免复制+粘贴工作.

目标:在PyCharm中为Python2键入提示.

sja*_*rni 22

就我而言,PyCharm中没有这样的直接工具.但是,有第三方工具.


.pyi 发电机

MyPy

是的,我想任何想在Python中使用编译时类型检查的人都可能最终使用MyPy.MyPy包含生成文件的stubgen.py工具.pyi.

用法

mkdir out
stubgen urllib.parse
Run Code Online (Sandbox Code Playgroud)

生成out/urllib/parse.pyi.

您也可以使用Python2:

stubgen --py2 textwrap
Run Code Online (Sandbox Code Playgroud)

对于C模块:

scripts/stubgen --docpath <DIR>/Python-3.4.2/Doc/library curses
Run Code Online (Sandbox Code Playgroud)

如果要指定自定义程序包的路径,可以使用以下--search-path选项:

stubgen my-pkg --search-path=folder/path/to/the/package
Run Code Online (Sandbox Code Playgroud)

化妆存根文件

该项目致力于实现这一目标.

用法

一个非常基本的(但它有一些选项,只需咨询README.mdmake_stub_files -h

make_stub_files foo.py
Run Code Online (Sandbox Code Playgroud)

预先写好的.pyi文件

所以你不必自己写.

Typeshed

是的,如果你.pyi在自己的项目中使用文件,你可能也想在使用外部代码时使用它.Typeshed包含.pyiPython2和Python3 stdlib的文件以及一堆Python2库(如redis,crypto,...)和一些Python3库(如werkzeug或者请求),所有版本都很好.


PyCharm .pyi文件的替代品

如果你很懒,或者只是处理一个不需要.pyi文件的项目而你不想被第三方工具打扰,PyCharm允许你使用: