Pygin — Python adapter
Python adapter
Latest post of the previous page:
Ещё было бы удобно для сортировки версий поменять имена архивов с pygin_89f1868_090517.7z на pygin_170509_89f1868.7zPython adapter
А что за магия такая - `import __hello__` - это питоновский код или С?
И вот это вот весьма странно:
Лучше, если плагин объявит класс `hello_world_plugin(farapi.Plugin)`, и Far автоматом его пнёт после импорта плагина. Типа высокоуровневый API. https://stackoverflow.com/questions/588 ... m-this-one
И вот это вот весьма странно:
Code: Select all
def GetGlobalInfoW(info):
global Plugin
Plugin = hello_world_plugin(info)
Python adapter
Что-то не видно его.
Code: Select all
import farapi
NameError: name 'farapi' is not defined
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Python adapter
Это такой встроенный хелловорлд.
Я думал об этом, но кто этот высокоуровневый API потом будет документировать?Лучше, если плагин объявит класс `hello_world_plugin(farapi.Plugin)`, и Far автоматом его пнёт после импорта плагина. Типа высокоуровневый API.
А так оно более-менее похоже на то, что на api.farmanager.com.
Написано же - динамический. Он не импортируется, а приходит в SetStartupInfoW.Что-то не видно его.
Python adapter
help(__hello__) co ccылкой на исходники было бы любопытно.
Так и не надо выпиливать низкоуровневый. Оставить как есть. Документацию можно в README.md засунуть. Там всего-то 5е колбэков в http://api.farmanager.com/ru/basicapi/index.html нужно. Примера будет достаточно.
https://github.com/trexinc/evil-program ... l/30/files
Python adapter
Что-то там какие-то неизвестные функции:
Code: Select all
Available API:
- GetUserScreen
- SetUserScreen
- __doc__
- __loader__
- __name__
- __package__
- __spec__
- api_pointer
- error
Python adapter
Лежит http://api.farmanager.com/ru/exported_f ... index.html однако и не грузиццо.
Абстракция не ради абстракции, а для программеров на Python. Основной же принцип языка в том, что код читается гораздо больше раз, чем пишется. Здесь тоже - сделать нормальный интерфейс для плагина, интуитивно понятный про чтении кода - большое дело. Мне легко, потому что я пытался на C плагины писать много лет назад, но посадить питоняшу без сакрального знания наваять плагин будет тяжеловато. Даже по образу и подобию.
Абстракция не ради абстракции, а для программеров на Python. Основной же принцип языка в том, что код читается гораздо больше раз, чем пишется. Здесь тоже - сделать нормальный интерфейс для плагина, интуитивно понятный про чтении кода - большое дело. Мне легко, потому что я пытался на C плагины писать много лет назад, но посадить питоняшу без сакрального знания наваять плагин будет тяжеловато. Даже по образу и подобию.
Python adapter
А как обращаться к полям https://api.farmanager.com/ru/structures/openinfo.html ? Там пустой dict в OpenW передаётся.
https://github.com/techtonik/discovery/ ... _init__.py
https://github.com/techtonik/discovery/ ... _init__.py
Python adapter
pygin_140517_6b26d5f.7z - это клёвое имя, но pygin_170514_6b26d5f.7z лучше сортируется по имени.
Да, что-то мудрёно получается. Непонятно что в какой последовательности запускается. Может рановато пока убирать сишные заглушки?.. В общем надо чуток помедитировать.
FarPluginClass - это хорошо, но вот плохо, что в __init__ ему ничего не валится. Там farapi всякие и т.п. Идея высокоуровневого интерфейса в том, чтобы всю статическую информацию Far взял из свойств плагина, а остальное уже происходило во время и после инициализации.
Да, что-то мудрёно получается. Непонятно что в какой последовательности запускается. Может рановато пока убирать сишные заглушки?.. В общем надо чуток помедитировать.
FarPluginClass - это хорошо, но вот плохо, что в __init__ ему ничего не валится. Там farapi всякие и т.п. Идея высокоуровневого интерфейса в том, чтобы всю статическую информацию Far взял из свойств плагина, а остальное уже происходило во время и после инициализации.