Python adapter

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

Python adapter

Postby DrKnS » Wed 30 Dec, 2015 17:52

Не прошло и трёх лет, как у меня дошли руки набросать демо.

В аттаче пример для Python. Умеет добавлять пункт в меню плагинов и показывать сакральную фразу под панелями.
Attachments
pygin_20170515_6117a9d.7z
(406.83 KiB) Downloaded 5 times

User avatar
techie
Posts: 712
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 22 times
Been thanked: 2 times

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Postby techie » Wed 30 Dec, 2015 21:18

DrKnS wrote:Source of the post В аттаче пример для Python. Умеет добавлять пункт в меню плагинов и показывать сакральную фразу под панелями.
Я понимаю, шо новый год, но это ж прям праздник какой-то. =) Только бы вот если бы он ещё не крэшился.
Last edited by HaRT on Wed 30 Dec, 2015 21:30, edited 1 time in total.
Reason: [spoiler]

User avatar
DrKnS
Posts: 4501
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 110 times
Contact:

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Postby DrKnS » Wed 30 Dec, 2015 21:55

techie wrote:Source of the post Только бы вот если бы он ещё не крэшился.
Питон не нашло? Фар, старее, чем сегодняшний 4498, будет падать, если не нашло.
Надо версия 3.5 и чтобы в %PATH% путь прописан был, см. readme.

tstr
Posts: 483
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 2 times
Been thanked: 2 times

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Postby tstr » Wed 30 Dec, 2015 22:33

эх, если бы в _macroinit.lua эти пути выставлять...

User avatar
techie
Posts: 712
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 22 times
Been thanked: 2 times

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Postby techie » Thu 31 Dec, 2015 06:14

DrKnS wrote:Source of the post Питон не нашло? Фар, старее, чем сегодняшний 4498, будет падать, если не нашло.
4498 уже не падает.
DrKnS wrote:Source of the post Надо версия 3.5 и чтобы в %PATH% путь прописан был, см. readme.
Класс. Работает. =)

А нельзя выбрать с какой версией дружить? Или выбрать её автоматом в расчёте на то, что питоновский код совместим между версиями.

Когда ошибка в скрипте, непонятно как дебажить. Всё что есть это .

Не перегружается плагин, если отредактировать его. Неудобно.
Last edited by HaRT on Thu 31 Dec, 2015 14:16, edited 1 time in total.
Reason: [code], [spoiler]

User avatar
DrKnS
Posts: 4501
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 110 times
Contact:

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Postby DrKnS » Thu 31 Dec, 2015 09:53

techie wrote:Source of the post А нельзя выбрать с какой версией дружить? Или выбрать её автоматом в расчёте на то, что питоновский код совместим между версиями.
Нельзя, увы. Линкуется с pythonNN.dll статически, другого способа я не знаю.
techie wrote:Source of the post Когда ошибка в скрипте, непонятно как дебажить. Всё что есть это вот.
Ошибка выводится в stdout. Если запусить с погашенными панелями, будет видно.

User avatar
HaRT
Moderator
Posts: 7953
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

Адаптеры (или плагины на любых языках и с любым интерфейсом)

Postby HaRT » Thu 31 Dec, 2015 14:19

DrKnS wrote:Source of the post другого способа я не знаю
Интересно, как PTVS дружит с несколькими экземплярами установленного питона на выбор…
Фар есть инструмент, а не нянька. © 2009 DrKnS

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

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

Postby gotar » Fri 01 Jan, 2016 21:24

Создаю каталог helloworld. В него записываю __init__.py из архива. Делаю load:helloworld. В меню по f11 ничего не появляется. Что я делаю не так? Если каталог helloworld переписать в %FARHOME%\Plugins и перезапустить far, то все работает.

User avatar
DrKnS
Posts: 4501
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 110 times
Contact:

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

Postby DrKnS » Fri 01 Jan, 2016 22:46

load:__init__.py

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

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

Postby gotar » Sat 02 Jan, 2016 12:45

Можно ли таким образом загрузить другой плагин на питоне и чем он должен отличаться от первого?

User avatar
DrKnS
Posts: 4501
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 110 times
Contact:

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

Postby DrKnS » Sat 02 Jan, 2016 14:28

С этой версией будет можно.
Отличаться должен гуидом.
Точек в именах папок быть не должно.

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

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

Postby gotar » Sat 02 Jan, 2016 23:33

unload: реализован?

User avatar
DrKnS
Posts: 4501
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 110 times
Contact:

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

Postby DrKnS » Sun 03 Jan, 2016 09:56

Наверное, попробуй.

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

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

Postby gotar » Sun 03 Jan, 2016 15:16

У меня не получается изменить текст, печатываемый плагином, без перезагрузки Фара.

Нельзя ли сделать так, чтобы в load: можно было указывать имя каталога, содержащего __init.py__ , чтобы было видно какой plugin грузится?

User avatar
DrKnS
Posts: 4501
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 110 times
Contact:

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

Postby DrKnS » Sun 03 Jan, 2016 18:23

gotar wrote:Source of the post У меня не получается изменить текст, печатываемый плагином, без перезагрузки Фара.
Питон не особо умеет выгрузку вообще. Но перегрузить вроде бы можно. Версия в шапке обновлена.
gotar wrote:Source of the post Нельзя ли сделать так, чтобы в load: можно было указывать имя каталога, содержащего __init.py__ , чтобы было видно какой plugin грузится?
Можно запускать load:имя_папки\__init__.py из папки уровнем выше, например.

User avatar
cmd.exe
Posts: 317
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

Python adapter

Postby cmd.exe » Sun 03 Jan, 2016 20:46

DrKnS wrote:Source of the postПитон не особо умеет выгрузку вообще. Но перегрузить вроде бы можно. Версия в шапке обновлена.
Но мы можем reload(module).
Для Python 2 использования встроенной функции перезагрузки ():
reload(module)
Для Python 2 и 3,2-3,3 использования перезагрузки модуля с имп:
imp.reload(module)
Но imp устарела начиная с версии 3.4 в пользу importlib, так что используйте:
importlib.reload(module)
Возможно добавить такую возможность в pygin?
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates


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

Who is online

Users browsing this forum: No registered users and 2 guests