Pygin — Python adapter

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

Pygin — Python adapter

Post by DrKnS »

Image

Не прошло и трёх лет, как у меня дошли руки набросать демо для Python.
Умеет добавлять пункт в меню плагинов и показывать сакральную фразу под панелями.

User avatar
DrKnS
Posts: 5487
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 273 times

Python adapter

Post by DrKnS »

Latest post of the previous page:

techie wrote:
Sat 17 Jun, 2017 10:59
Зачем такое надо?
FCTL_GETUSERSCREEN - это "фар, убери всё свое барахло, я хочу эксклюзивно что-то порисовать в консоли".
FCTL_SETUSERSCREEN - это "фар, я закончил, скопируй вот это всё себе под панели".
techie wrote:
Sat 17 Jun, 2017 11:10
Как получить текущий файл
Пока никак.

User avatar
DrKnS
Posts: 5487
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 273 times

Python adapter

Post by DrKnS »

Переделал загрузку, теперь "плагином" считается любой файл с "расширением" .far.py, соответственно можно держать несколько в одной папке.

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

Python adapter

Post by techie »

DrKnS wrote:
Sat 17 Jun, 2017 13:21
Пока никак.
Dr.-Who.gif
Dr.-Who.gif (448.45 KiB) Viewed 11250 times

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

Python adapter

Post by techie »

Может https://cffi.readthedocs.io/en/latest/ может как-то помочь апишечку завернуть в низкоуровневый интерфейс?

User avatar
DrKnS
Posts: 5487
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 273 times

Python adapter

Post by DrKnS »

Не нервничайте, всё будет, но не всё сразу.

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

Python adapter

Post by techie »

Время заканчивается. Вселенную спасать надо, а нструментов нет.

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

Python adapter

Post by techie »

Шэф, ну что?

User avatar
DrKnS
Posts: 5487
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 273 times

Python adapter

Post by DrKnS »

techie wrote:
Wed 05 Jul, 2017 06:35
ну что?
Сабж, если что, создавался как Proof-of-Concept адаптера, дабы убедиться, что оно реализуемо, работоспособно и т. п.
Мной не двигало стремление в одиночку создать полноценную интерацию с питоном.
Скорее, предоставить минимальный каркас, на базе которого можно потом что-то строить.
Цель эта, в принципе, достигнута, и на этом можно было бы и закончить.

Процесс, однако, оказался весьма затягивающим и доставляющим, так что я продолжу.
Но не стоит ждать каких либо обещаний и сроков: вдохновение может прийти завтра, а может и через год.

Как обычно: код доступен, если присылать патчи @ делать пулл реквесты - дело пойдет быстрее.

tstr
Posts: 533
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 9 times
Been thanked: 8 times

Python adapter

Post by tstr »

Спасибо, и вдохновенья Вам )

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

Python adapter

Post by techie »

Портировать интерфейсы Far ручками долго. CFFI может сгенерить обёртки для C, и для С++ есть инструменты, но не компилируется уже совсем у меня в мозгах, да и визуал студии нет. Если бы можно было клонировать код и пересобрать одной командой сразу в Far, то можно было бы попробовать, а так слишком много времени уходит.

Сейчас мне надо сделать обёртку для того, чтобы открыть панель с файликами, которые я получаю по команде git diff, и соответственно обрабатывать префикс git: плагином.

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

Python adapter

Post by techie »

Как задать IncludePath правильно, чтобы скомпилялся? https://ci.appveyor.com/project/techton ... ild/1.0.22

User avatar
DrKnS
Posts: 5487
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 273 times

Python adapter

Post by DrKnS »

set PythonPath=C:\Python36

User avatar
DrKnS
Posts: 5487
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 273 times

Python adapter

Post by DrKnS »

techie wrote:
Fri 07 Jul, 2017 18:31
Портировать интерфейсы Far ручками долго. CFFI может сгенерить обёртки для C
Вы же ещё недавно жаловались, что какие-то жалкие ууиды - это не пайтонвэй.
А с этим вашим FFI вообще все богомерзкие сишные потроха с явными типами и ручным управлением памятью будут торчать наружу.
И зачем так жить? Лучше тогда сразу на сишечке, там хоть синтаксис проще.

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

Python adapter

Post by techie »

А какой альтеративный путь? Есть другие генераторы - https://github.com/pybind/pybind11 например, но я тоже ими не пользуюсь.

User avatar
DrKnS
Posts: 5487
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 273 times

Python adapter

Post by DrKnS »

techie wrote:
Sun 09 Jul, 2017 16:06
А какой альтеративный путь?
Путь один - ручками.
Механически портировать один в один вредно и бессмысленно.
Например, InputBox, которая пишет строку в переданный адрес и возвращает true/false. В питоне тоже можно извратиться и передать, скажем, пустой список, куда эта строка будет записана, но это маразм и ересь, проще тупо вернуть строку или None, если отменили.

Добавил GetMsg, InputBox, Menu, Message, ShowHelp.
Новые билды - на AppVeyor.

tstr
Posts: 533
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 9 times
Been thanked: 8 times

Python adapter

Post by tstr »

DrKnS wrote:
Tue 18 Jul, 2017 18:47
Новые билды - на AppVeyor.
Подскажите, плиз, как именно туда попасть.

Post Reply

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