Создать .pyi файлы автоматически?

Как я могу автоматически создать шаблонный код pyi файлов?

Я хочу создать файл pyi для типа намека, как описано в pep484, который содержит все имена методов.

Я не хочу магии. Я хочу добавить информацию о типе после автоматического создания файла.

Я хочу, чтобы избежать копирования и вставки.

Цель: тип подсказки в PyCharm для Python2.

Ответы

Ответ 1

Насколько мне известно, такого прямого инструмента в PyCharm нет. Однако для этого существуют сторонние инструменты.


.pyi генераторы

MyPy

Да, я предполагаю, что любой, кто хочет использовать проверку типа компиляции в Python, вероятно, заканчивает использование MyPy. MyPy содержит stubgen.py, который генерирует файлы .pyi.

Использование

(все из документов в файле stubgen.py)

mkdir out
stubgen urllib.parse

генерирует out/urllib/parse.pyi.

Вы также можете использовать его для python2:

stubgen --py2 textwrap

или для модулей C:

scripts/stubgen --docpath <DIR>/Python-3.4.2/Doc/library curses

make-stub-files

Этот проект предназначен именно для этой цели.

Использование

Очень простой (но у него есть несколько вариантов, просто проконсультируйтесь с README.md или make_stub_files -h

make_stub_files foo.py

предварительно записанные .pyi файлы

Поэтому вам не нужно писать свои собственные.

Typeshed

Да, если вы используете файлы .pyi в своем собственном проекте, вы, вероятно, захотите использовать это также при использовании внешнего кода. Содержит файлы .pyi для Python2 и Python3 stdlib и кучу библиотек Python2 (например redis, crypto,...) и некоторые библиотеки Python3 (например werkzeug или requests), все красиво исполнены версии.


Альтернативы PyCharm для файлов .pyi

Если вы ленивы или просто работаете над проектом, который не требует файлов .pyi, и вы не хотите беспокоиться об использовании сторонних инструментов, PyCharm позволяет использовать: