#DeskChan
Новая штука для DC! В этот раз это плагин, который позволяет другим плагинам быть написанными на языке Python 2.5. Ну, если быть более точным, называется он Jython и поддерживает не только модули, входящие в стандартную поставку Python-интерпретатора, но и библиотеки Java. Пример простейшего плагина для изучения присутствует в архиве (test_python).
По сути тут поддерживаются вызовы тех же функций, что и в Groovy-плагине (sendMessage(), addMessageListener(), getPluginDir() и т. д.), но мне пока не удалось элегантно "заинжектить" их в интерпретатор именно как функции*. Поэтому взаимодействие с системой сообщений приложения осуществляется через так называемую шину (bus) — специальный объект, проксирующий вызовы методов в Java-код.
* Сделать плагин наследником Java-класса, как сделано для Groovy-плагинов у меня не получилось. В многообразии Джавовских "коллбэков" я тоже плохо ориентируюсь. Ближе всего к желаемому результату получилось заинжектить Грувовский Closure. Но из Python-кода его приходится вызывать через callOn(), что ещё хуже, чем решение с шиной. Может потом я всё-таки что-нибудь придумаю. Или кто-нибудь подскажет. В любом случае, обратная совместимость с шиной будет сохранена.
Как обычно, два варианта установки, которым надо указать папку с DC.
ZIPак: http://kozalo.ru/files/jython_support.zip
SFX: https://mega.nz/#!FcVgTQZA!4A0mEW8IeQGrhXX3e8_15DK7CRURiPC4OCxS1ANJPuc