Основные сведения
Библиотека предназначена для работы с Polymatica API.
Офлайн-установка
Для офлайн-установки используется единый архив бинарных зависимостей для CPython 3.6-3.14 на Linux x86_64:
https://repo.polymatica.ru/analytics/releases/python-deps/polyapi-wheels.tar.gz
Контрольная сумма архива публикуется рядом:
https://repo.polymatica.ru/analytics/releases/python-deps/polyapi-wheels.tar.gz.sha256
Архив необходимо перенести на сервер, проверить и распаковать перед установкой
пакета polymatica-analytics-api-python-lib. Встроенный установщик сам находит
поддерживаемый CPython, выбирает соответствующий constraints-файл и использует
только локальные wheel-файлы:
install -d -m 0755 /opt/polymatica
STAGE=$(mktemp -d /opt/polymatica/.python-deps.XXXXXX)
trap 'rm -rf "$STAGE"' EXIT
sha256sum -c polyapi-wheels.tar.gz.sha256
tar -xzf polyapi-wheels.tar.gz -C "$STAGE"
test -x "$STAGE/python-deps/install.sh"
"$STAGE/python-deps/install.sh"
rm -rf /opt/polymatica/python-deps.previous
if [ -e /opt/polymatica/python-deps ] || [ -L /opt/polymatica/python-deps ]; then
mv /opt/polymatica/python-deps /opt/polymatica/python-deps.previous
fi
mv "$STAGE/python-deps" /opt/polymatica/python-deps
rmdir "$STAGE"
trap - EXIT
Если поддерживаемый Python установлен под отдельным именем, его можно указать перед выполнением основной последовательности без ручного выбора папки с зависимостями, например для Astra Linux CE 2.12:
export POLYAPI_PYTHON_BIN=python3.7
На RED OS 7 используется системный Python 3.8. Offline-копия wheel PolyAPI содержит точные зависимости с условиями для каждой поддерживаемой версии Python, поэтому стандартная команда приёмки работает без отдельного constraints-файла:
python3 -m pip install --no-index \
--find-links=/opt/polymatica/python-deps polyapi
Встроенный install.sh остаётся рекомендуемым способом: он дополнительно
проверяет SHA256SUMS, выбирает совместимую версию pip и учитывает защиту
системного Python (PEP 668) в Debian 12 и Ubuntu 24.04. Для RED OS 7 его можно
запустить так:
POLYAPI_PYTHON_BIN=python3 /opt/polymatica/python-deps/install.sh
Подробная инструкция INSTALL.txt включается непосредственно в offline-архив.
Файл constraints и offline-метаданные PolyAPI фиксируют одинаковые точные версии зависимостей для обнаруженной версии Python, а pip выбирает соответствующие ей wheels по ABI и платформе. Выбирать отдельную папку вручную не требуется. Обычная сборка DEB/RPM не изменена и содержит только исходный wheel PolyAPI, поэтому в закрытом контуре сначала выполняется установка из архива зависимостей, затем устанавливается системный пакет. Для CPython 3.14 необходима glibc 2.28 или новее; для CPython 3.6-3.13 используются wheels, совместимые с manylinux2014 (glibc 2.17 или новее).
Перед установкой на сервере должны присутствовать поддерживаемый CPython с
модулем pip и утилита sha256sum; установка выполняется с правами, достаточными
для изменения системного Python. Совместимая установленная версия pip
сохраняется. Если pip слишком старый или не поддерживает выбранную версию
Python, установщик заменяет его проверенной версией только из локального архива.
Работа с библиотекой
Основным модулем бизнес-логики является файл business_scenarios.py,
импортировать который можно с помощью команды from polymatica import business_scenarios as sc.
Модуль предоставляет два класса для работы с Полиматикой - BusinessLogic и GetDataChunk.
Методы этих классов можно посмотреть при помощи стандартной функции dir().
Аргументы функций и прочую docstring-документацию модуля и функций можно посмотреть
при помощи стандартной функции help().
Инициализация нового клиентского подключения:
session = sc.BusinessLogic(login="your_login", password="your_password", url="polymatica_server_url", **args)
Пример создания слоя и воспроизведения сценария на этом слое с использованием PolyAPI
Создадим слой:
session.execute_manager_command(command_name="user_layer", state="create_layer")
Запросим список сценариев:
session.execute_manager_command(command_name="scripts", state="get_script_descriptions_list")
Загрузим сценарий на слой, используя полученные на предыдущих шагах идентификаторы слоя и сценария:
session.execute_manager_command(command_name="scripts", state="load_on_layer", runtime_id="d46b7075", script_id="40fc65db", on_load_action=0)
Воспроизведем сценарий:
session.execute_manager_command(command_name="scripts", state="play_to_position", runtime_id="d46b7075", script_id="40fc65db", play_to_position=23, clear_workspace=True)
Получим статус воспроизведения сценария:
session.execute_manager_command(command_name="scripts", state="get_script_status", runtime_id="d46b7075")
Получили ответ, из которого видим, что сценарий воспроизведен успешно:
{'state': 1, 'queries': [{'uuid': '872bdbde-20b9f734-2a5a5ad5-9b08e670', 'command': {'plm_type_code': 227, 'state': 6, 'script_status': {'id': '40fc65db', 'action_name': '', 'status': 3, 'current_step': 24, 'steps_count': 24, 'errors': []}}}]}
Получим информацию о слое:
session.execute_manager_command(command_name="user_layer", state="get_layer", layer_id="d46b7075")
Metadata
Release files for polyapi 5.9.23
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| polyapi-5.9.23.tar.gz | 199.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| polyapi-5.9.23-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 409.1 kB
Release files / polyapi-5.9.23.tar.gz
| Download URL | polyapi-5.9.23.tar.gz |
|---|---|
| Size | 199.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bb47b3d977a07cc9c3223e7de0cec0759fc280c7b3f62c7ba4f5b4501e46c0bd
|
|
BLAKE2b-256 checksum How to use checksums |
2f8bddcddf90fafabe314b244dbce8ed2fb9e12097814e47d00fa73ee32340a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / polyapi-5.9.23-py3-none-any.whl
| Download URL | polyapi-5.9.23-py3-none-any.whl |
|---|---|
| Size | 209.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e750f4f56129f25e666f6a79670dda48b9d46979da39338e31c8cec396125a98
|
|
BLAKE2b-256 checksum How to use checksums |
66a1f7d7075ef10368cf729ce8d034c49c69fae514df03c3a3339ed6f80d8c67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|