Skip to content
 
 

Repository files navigation

IRBIS64-PyRun

Библиотека подключения python функций в приложение ИРБИС64

Зависмости и сборка

  1. Подключить в проекте Python37-32\include
  2. ИРБИС64(64 - это не про битность) и библиотека - x86. Python тоже рекомендуется версии x86.
  3. Подключить python37.lib (Или добавить в папку проекта)

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

Библиотека используется на сервере ИРБИС64

Развертывание

В корневой каталог ИРБИС64 нужно положить pyrun.dll и python37.dll

Применение

В библиотеке содержится одна функция StrByStr. Она отвечает требованиям разработчиков ИРБИС64 к подключаемым функциям:

Внешние функции должны ОБЯЗАТЕЛЬНО иметь следующую структуру:

в случае C
int test_function1(char *buf1, char *buf2, int bufsize) 
где: buf1 – передаваемые данные (входные), buf2 – возвращаемые данные (выходные), bufsize – размер выходного буфера (buf2). В ИРБИС64 данные передаются и возвращаются в UTF8. Возврат функции: 0 – нормальное завершение; любое другое значение – ненормальное.

&unifor('+8<имя_DLL>,<имя_функции>,.... 
Следует помнить, что имя функции в вызове надо указывать строго в соответствии с тем, как она экспортирована из DLL, большие и маленькие буквы различаются.

Таким образом, непосредственно в формате применение следующее:

&uf('+8pyrun,StrPyStr,package.module|function|input_str')

Например, передать запись целиком в Python-функцию в виде json'строки целиком:

&uf('+8pyrun,StrPyStr,package.module|function|', &uf('+@'))

выбор модуля осуществляется через python адресацию import, с точкой, корневой каталог python проекта ~ корневой каталог ИРБИС64

Python функция возвращает строку, поэтому функция должна что-то возвращать, None вернется как None, библиотека вернет код возврата -7

Debug Mode

Если перед именем модуля добавить восклицательный знак - библиотека будет возвращать строку с сообщением об ошибке парсинга строки, python вызова:

&uf('+8pyrun,StrPyStr,!package.module|function|', &uf('+@'))

Использование не рекомендуется где-нибудь кроме редактора формата.

Traceback python не возвращается, в случае необходимости отладки предполагается самостоятельная обработка try ... except

About

Библиотека подключения python функций в приложение ИРБИС64

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages