Импорт функций
Узнайте, как импортировать функции из других плагинов, написанных на разных языках, и использовать их в своем собственном.
В Plugify языковой модуль Python позволяет импортировать и использовать функции из плагинов, написанных на других языках. Это достигается за счет генерируемых во время выполнения синтетических модулей, которые обеспечивают бесшовное межплагиновое взаимодействие. Кроме того, могут быть сгенерированы stub-файлы (.pyi), чтобы предоставить подсказки типов и сигнатуры функций для лучшего опыта разработки в IDE, таких как PyCharm или VSCode.
Это руководство объясняет, как импортировать функции в Python и как использовать stub-файлы для разработки.
Обзор
При импорте функций из другого плагина в Python:
- Генерируемые во время выполнения модули: Plugify динамически генерирует синтетические модули во время выполнения, позволяя вам напрямую импортировать и вызывать функции из других плагинов.
- Stub-файлы для разработки: Stub-файлы (
.pyi) могут быть сгенерированы для предоставления подсказок типов и сигнатур функций. Эти файлы не требуются для выполнения во время выполнения, но полезны для разработки. - Прямые вызовы функций: Функции вызываются напрямую с использованием импортированных синтетических модулей.
Импорт функций в Python
Импортируйте синтетические модули
Чтобы импортировать функции из другого плагина, используйте систему импорта Plugify для загрузки синтетического модуля для целевого плагина.
plugin_from_another_language: Замените это на имя плагина, из которого вы хотите импортировать функции.other_plugin: Это псевдоним для импортированного модуля плагина.
Вызовите импортированные функции
После импорта синтетического модуля вы можете вызывать его функции напрямую.
Пример 1: Вызов простой функции
ParamCallback: Это пример функции, экспортируемой целевым плагином. Замените его на фактическое имя функции.- Параметры: Передайте необходимые параметры в соответствии с сигнатурой функции.
Пример 2: Вызов функции с параметром обратного вызова
Если импортируемая функция требует обратный вызов (callback) в качестве параметра, вы можете определить обратный вызов в Python и передать его в функцию. Вот пример:
CallFuncCallback: Это пример функции, которая принимает обратный вызов в качестве параметра.mock_func: Это функция обратного вызова, определенная в Python. Она изменяет параметры, переданные по ссылке, и возвращает их в виде кортежа.- Возвращаемые значения: Функция обратного вызова возвращает
None(для типа возвращаемого значения void) и измененные параметры.
Использование stub-файлов для разработки
Stub-файлы (.pyi) не требуются для выполнения во время выполнения, но настоятельно рекомендуются для разработки. Они предоставляют подсказки типов и сигнатуры функций, что облегчает понимание доступных функций и их параметров.
Генерация stub-файлов
Plugify предоставляет унифицированный инструмент-генератор для автоматической генерации stub-файлов для импортируемых плагинов.
Использование онлайн-генератора:
Посетите инструмент plugify-gen для генерации stub-файлов через удобный веб-интерфейс. Просто загрузите файл манифеста плагина (.pplugin) и выберите Python в качестве целевого языка, чтобы сгенерировать соответствующий stub-файл .pyi.
Использование инструмента командной строки:
Вы также можете скачать и использовать инструмент-генератор локально из репозитория plugify-gen.
Пример использования:
Сгенерированный stub-файл:
- Скрипт сгенерирует stub-файл (например,
MyPlugin.pyi) в указанной папке вывода. - Пример содержимого stub-файла:
Использование stub-файлов в вашей IDE:
- Поместите сгенерированный stub-файл (
.pyi) в каталог вашего проекта (но не в папку с плагинами). - IDE, такие как PyCharm и VSCode, будут использовать stub-файл для предоставления подсказок типов и автодополнения.
Поддержка stub-файлов в PyCharm:
- PyCharm поддерживает stub-файлы с расширением
.pyi. Для получения дополнительной информации обратитесь к документации PyCharm по stub-файлам.
Поддержка stub-файлов в VSCode:
- VSCode поддерживает stub-файлы путем настройки параметра
python.analysis.stubPathв ваших рабочих или пользовательских настройках. Добавьте путь к папке, содержащей ваши stub-файлы (например,./stubs/), чтобы включить подсказки типов и автодополнение. - Пример конфигурации
settings.json:
Примечания
- Stub-файлы необязательны: Stub-файлы предназначены только для разработки и не должны включаться в папку выполнения вашего плагина.
- Эффективность во время выполнения: Поскольку Python является динамически типизированным языком, вызовы функций разрешаются во время выполнения без необходимости в предварительно скомпилированных заголовочных файлах или stub-файлах.
Следуя этому руководству, вы можете легко импортировать и использовать функции из других плагинов в вашем плагине на Python, используя при этом stub-файлы для лучшего опыта разработки.