Pygin — Python adapter

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Pygin — Python adapter

Post by DrKnS »

Image

Не прошло и трёх лет, как у меня дошли руки набросать демо для Python.
Умеет добавлять пункт в меню плагинов и показывать сакральную фразу под панелями.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Python adapter

Post by DrKnS »

Latest post of the previous page:

Обновил архив в первом посте.

- Теперь адаптер вызывает __init__.py из своего каталога до загрузки плагинов. Соответственно, там можно самостоятельно, прямо на питоне, написать сколь угодно сложную отладочную консоль. По умолчанию весь вывод дублируется в %temp%\pygin.log.
- Код теперь там.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Python adapter

Post by techie »

А можно вместо `load:helloworld\__init__.py` просто `load:helloworld`?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Python adapter

Post by DrKnS »

Увы, нельзя - в терминологии фара папка плагином не бывает.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Python adapter

Post by techie »

Это самого фар ограничение? Потому что терминологии Python такой штуки как __init__.py не существует - это же не модуль, а обозначение импортируемого package.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Python adapter

Post by John Doe »

DrKnS wrote:Увы, нельзя - в терминологии фара папка плагином не бывает.
Это не должно помешать научить FarCmds загружать плагины из указанной папки, рекурсивно
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Python adapter

Post by DrKnS »

techie wrote: Это самого фар ограничение?
Ну я вроде так и написал, "в терминологии фара", а не "в терминологии питона".
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Python adapter

Post by DrKnS »

John Doe wrote: Это не должно помешать научить FarCmds загружать плагины из указанной папки, рекурсивно
Не должно.
Где Wishes на багтрекере, вы, наверное, в курсе.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Python adapter

Post by techie »

Так а как адаптер определяет, что перед ним плагин?

https://github.com/trexinc/evil-program ... in.cpp#L84

Far что, подсовывает адаптеру все файлы на тест по очереди?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Python adapter

Post by DrKnS »

techie wrote: Far что, подсовывает адаптеру все файлы на тест по очереди?
В шапке ссылка на тему с описанием принципа работы.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Python adapter

Post by techie »

Ссылки на GitHub в шапке не хватает. )
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Python adapter

Post by techie »

При обновлении Python 3.5.1 до 3.5.2 все копии Far молча закрылись. Так и надо? =/
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Python adapter

Post by DrKnS »

Ну вот такой у них умный инсталлер.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Python adapter

Post by techie »

4900 крэшится через раз при загрузке вот такого плагина.

Code: Select all

__title__ = "Python Recorder"

def GetGlobalInfoW(info):
    global __title__
    info["Title"] = __title__
    info["Author"] = "Far group"
    info["Desc"] = "Python plugin example"
    info["Guid"] = "31A0D11E-B9D8-4A9B-88C7-2D2983802C51"

def GetPluginInfoW(info):
    global __title__
    info["MenuString"] = __title__
    info["Guid"] = "DAF1257B-E011-4B5A-B5DC-732581BDF3BA";

def OpenW(info):
    print("Hello Python World\n")
Attachments
clipcrop.png
clipcrop.png (8.02 KiB) Viewed 12319 times
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Python adapter

Post by techie »

После обновления до последнего pygin.7z (379105) теперь вылет на другой функции. Тоже через раз.
clipcrop01.png
clipcrop01.png (8.14 KiB) Viewed 12313 times
Ещё бывает такое:
clipcrop02.png
clipcrop02.png (5.09 KiB) Viewed 12313 times
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Python adapter

Post by DrKnS »

- 4900 был давно.
- 379105 - это что? Последний в гите.
- гуиды надо иметь свои.
- у меня вроде бы всё работает.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Python adapter

Post by techie »

379105 - это размер архива pygin.7z Не знаю как по-другому идентифицировать. Смена гуидов ничего не дала. Сейчас попробую с последней сборкой Far'а.
Last edited by techie on Fri 28 Apr, 2017 10:40, edited 1 time in total.
Post Reply

Return to “Разработка плагинов”