Не прошло и трёх лет, как у меня дошли руки набросать демо для Python.
Умеет добавлять пункт в меню плагинов и показывать сакральную фразу под панелями.
Pygin — Python adapter
Posted: Fri 11 Aug, 2017 17:36
by tstr
Latest post of the previous page:
спасибо, ближайшее время попробую шагнуть дальше.
в заметки: заводятся замечательно что веб-дебаггер wdb, что PyCharm в режиме Python Remote Debugger.
Pygin — Python adapter
Posted: Fri 25 Aug, 2017 20:02
by DrKnS
techie wrote: ↑Sat 17 Jun, 2017 11:10Как получить текущий файл на панели из функции OpenW?
DrKnS wrote: ↑Wed 09 Aug, 2017 13:35зелёная кнопка с надписью "build passing", которая ведет на AppVeyor. Там жмите на любой job, потом artifacts, потом 7z.
Это тоже надо в шапку. Последний билд - жмякаете зелёную кнопку, потом любой job, потом artifacts, потом 7z.
Response = far.InputBox(
self.Guid,
uuid.UUID("{0F87C22C-4F6F-4B71-90EC-C3C89B03010B}"),
"Attention",
"Your opinion is very important to us:",
"InputHistory",
"",
1024,
"InputBoxTopic",
far.InputBoxFlags.Buttons)
Response = self.far.InputBox(
title="Attention",
prompt="Your opinion is very important to us:",
history="InputHistory",
default="",
help="InputBoxTopic",
flags=far.InputBoxFlags.Buttons)
kwargs поддерживаются, но расставлять их везде мне что-то лень.
self.far с гуидом плагина можно дешёво сделать
Спасибо, сделал.
Pygin — Python adapter
Posted: Mon 28 Aug, 2017 06:30
by tstr
пробую установить версию «lunatic-python-20170817.7z» из первого сообщения темы на ночной Far c новым профилем: Windows 7 x64 с обновлениями, устаовлена х64 anaconda 4.4.0 и обновлена из собственных репозитариев до python-3.6.2-0 в числе прочего.
устанавливаю модуль lunatic-python-20170817.7z\lunatic-python\src\out\python36\64bit\python.dll в %FARPROFILE%\Macros\lib64 ,
а скрипт py-hash.lua в %FARPROFILE%\Macros\scripts , перегружаю Far, вызываю скрипт на любом файле, получаю вывод в консоль:
Traceback (most recent call last):
File "<string>", line 5, in CalcHash
ModuleNotFoundError: No module named 'lua'
,
при этом sys.path, если его напечатать или вывести в файл - корректный.
в Sysinternals File Monitor видим, что при попытке найти модуль, загружаемый из контекста питона через «import lua» ищет как положено, в директориях питоновского sys.path, только вместо имени модуля ставит строку «<string>» :
использование рантайма в папке Far, наличие/отсутствие полной инсталляции в %PATH%, использование оф. сборки CPython (инсталл и embedded версии 3.6.2) на ситуацию не влияют.
возможно импорт - это часть проблемы, модуль lua в контексте Lunatic Python должен быть как и модуль pygin в контексте pygin - встроенным модулем. тем не менее он ищется pygin-ом в неверных местах.
Pygin — Python adapter
Posted: Mon 28 Aug, 2017 09:07
by DrKnS
Вроде бы всё работает:
both.png (79.49 KiB) Viewed 30919 times
Pygin — Python adapter
Posted: Mon 28 Aug, 2017 12:17
by tstr
у меня не заводится,
попробовал на 7-ке и 10-ке без питона - тоже самое:
pygin c helloworld работает, Lunatic c py-hash.lua нет
Image 001.png (24.37 KiB) Viewed 21914 times
Pygin — Python adapter
Posted: Tue 29 Aug, 2017 15:00
by tstr
не удаётся установить причину, устойчиво проявляется: плагины и макросы не добавляю, добавляю Lunatic Python модуль Lua,
при наличии pygin adapter (тестовый плагин не важен), при вводе в командной строке
╔══════════════════════════════════════ LuaMacro ═══════════════════════════════════════╗
║ [string "require"python";python.import"lua";print(pyth..."]:1: failed importing 'lua' ║
║ stack traceback: ║
║ [C]: in function 'import' ║
║ [string "require"python";python.import"lua";print(pyth..."]:1: in main chunk ║
╟───────────────────────────────────────────────────────────────────────────────────────╢
║ {OK} ║
╚═══════════════════════════════════════════════════════════════════════════════════════╝
без pygin получаю в консоль вывод питона «['__name__', '__doc__', '__package__', '__loader__', '__spec__', 'execute', 'eval', 'globals', 'require']», как и ожидалось.
Pygin — Python adapter
Posted: Tue 29 Aug, 2017 15:51
by Shmuel
Сейчас впервые попробовал сабж - и вот первый багрепорт
Выбираю из меню "Do console stuff" и получаю:
╔════════ Pygin: Python exception ═════════╗
║ ValueError: 113 is not a valid SortModes ║
╟──────────────────────────────────────────╢
║ Traceback (most recent call last): ║
║ File "enum.py", line 291, in __call__ ║
║ File "enum.py", line 533, in __new__ ║
║ File "enum.py", line 546, in _missing_ ║
╟──────────────────────────────────────────╢
║ { OK } ║
╚══════════════════════════════════════════╝
После чего Фар можно только прибить.
113 - это custom sort mode.
Pygin — Python adapter
Posted: Tue 29 Aug, 2017 17:16
by Shmuel
DrKnS, ещё один репорт:
1. Переношу папку helloworld из Plugins в %FARHOME%
2. Выхожу из Far и запускаю его снова.
3. Плагин как ни странно не только появляется в меню плагинов, но и работает.
tstr, модуль "lua" отсутствует в полном соответствии с кодом библиотеки, если интерпретатор Питона уже инициализирован.
То есть, если Pygin загружается до LuaMacro, то py-hash работать не будет. Это плохо, да, но что-то придумаем (срочность не обещаю, поскольку в сентябре будет напряжёнка на работе).
Pygin — Python adapter
Posted: Tue 29 Aug, 2017 18:13
by tstr
Shmuel, да, адаптер должен по замыслу грузиться до всех возможных плагинов, это ожидаемо.
Shmuel wrote: ↑Tue 29 Aug, 2017 17:16что-то придумаем (срочность не обещаю, поскольку в сентябре будет напряжёнка на работе)
ясно, будем пока независимо смотреть, не взбалтывая )