问题描述
如何自动创建 pyi 文件?
How can I automatically create the boilerplate code of pyi files?
我想为类型创建一个 pyi 文件提示如 pep484 中所述,其中包含所有方法名称.
I want to create a pyi file for type hinting as described in pep484 which contains all method names.
我不想要魔法.我想在自动创建文件后添加类型信息.
I don't want magic. I want to add the type information after auto creating the file.
我想避免复制+粘贴工作.
I want to avoid the copy+paste work.
目标:在 PyCharm 中为 Python2 输入提示.
Goal: Type hinting in PyCharm for Python2.
推荐答案
就我而言,PyCharm 中没有这样的直接工具.但是,有 3rd 方工具可以做到这一点.
As far as I am concerned, there is no such direct tool in PyCharm. There are, however, 3rd party tools for this.
是的,我想任何想在 Python 中使用编译时类型检查的人,最终都可能使用 MyPy.MyPy 包含 stubgen.py 生成 .pyi
文件的工具.
Yes, I guess anyone who wants to use compile-time type checking in Python, probably ends up using MyPy. MyPy contains stubgen.py tool which generates .pyi
files.
mkdir out
stubgen urllib.parse
生成out/urllib/parse.pyi
.
你也可以在 Python2 中使用它:
You can use it wit Python2 too:
stubgen --py2 textwrap
对于 C 模块:
scripts/stubgen --docpath <DIR>/Python-3.4.2/Doc/library curses
如果要指定自定义包的路径,可以使用 --search-path
选项:
If you want to specify the path to your custom package, you can use --search-path
option:
stubgen my-pkg --search-path=folder/path/to/the/package
make-stub-files
这个项目就是为了这个目标.
make-stub-files
This project is dedicated to exactly this goal.
一个非常基本的(但它有一些选项,只需查阅 README.md
或 make_stub_files -h
A very basic one (but it has a handful of options, just consult README.md
or make_stub_files -h
make_stub_files foo.py
预先编写的.pyi
文件
因此您不必自己编写.
pre-written .pyi
files
So you don't have to write your own.
是的,如果您在自己的项目中使用 .pyi
文件,您可能想在使用外部代码时也使用它.Typeshed 包含 Python2 和 Python3 stdlib 的 .pyi
文件和一堆 Python2 库(如 redis、加密a>, ...) 和一些 Python3 库(如 werkzeug 或 requests),所有版本都很好.
Yes, if you're using .pyi
files in your own project, you probably want to use this also when using external code. Typeshed contains .pyi
files for Python2 and Python3 stdlib and a bunch of Python2 libraries (like redis, crypto, ...) and some Python3 libraries (like werkzeug or requests), all nicely versioned.
如果你很懒,或者只是在一个不需要 .pyi
文件的项目上工作,并且你不想被使用 3rd 方工具所困扰,PyCharm 允许你使用:
In case you're lazy, or simply just working on a project which doesn't require .pyi
files and you don't want to be bothered by using 3rd party tools, PyCharm allows you to use:
这篇关于自动创建 .pyi 文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!