Официальный Python Client SDK для облачного движка NativeBPM.
Чтобы установить пакет из публичного реестра GitLab PyPI Package Registry:
pip install nativebpm-client --extra-index-url https://gitlab.com/api/v4/projects/nativebpm%2Fsdk/packages/pypi/simpleДля локальной разработки:
pip install -e .Для локального запуска тестов Python SDK:
# Убедитесь, что установлен pytest
pip install pytest pytest-asyncio
pytestPython SDK содержит полностью типизированную обертку Fluent API вокруг моделей данных Pydantic V2.
from nativebpm import Client
# Инициализация клиента
client = Client(base_url="http://localhost:8080", api_token="your-api-token")
# 1. Получение списка развернутых определений процессов
definitions = client.definitions().list().send()
for d in definitions:
print(f"Process: {d.name} (ID: {d.id})")
# 2. Запуск нового инстанса процесса с бизнес-ключом и переменными
variables = {"priority": "high", "amount": 1200}
instance = (
client.instances()
.start("order-processing")
.business_key("ORD-4501")
.variables(variables)
.send()
)
print(f"Started instance: {instance.id}")Вы можете описывать логику ваших бизнес-процессов на чистом Python:
from nativebpm import Workflow, V
# Описание процесса
workflow = Workflow("awesome-python-process", "Awesome Python Process")
workflow.when(V("isPremium").eq(True)).then(
lambda flow: flow.user("vipService", "VIP Customer Support", assignee="vip_manager")
).Else(
lambda flow: flow.service("standardNotify", "Send Regular Notification", "notification_topic")
)
# Развертывание процесса на движке
definition = client.deploy(workflow)В папке examples находится готовый пример долгоживущего процесса-воркера, который опрашивает NativeBPM на наличие задач, закрепленных за ним (например, ИИ-расчеты или квантовое возмущение), берет их в работу и завершает:
python examples/python_worker.pyЭтот пакет автоматически собирается и публикуется в GitLab Package Registry при каждом пуше git-тега, соответствующего шаблону sdk/python/v*. Например:
git tag sdk/python/v1.0.0
git push origin sdk/python/v1.0.0Для публикации релиза вручную:
- Выполните сборку:
pip install build twine python -m build
- Загрузите собранные пакеты с помощью Twine:
- Используя личный токен доступа (Personal Access Token):
twine upload --repository-url https://gitlab.com/api/v4/projects/nativebpm%2Fsdk/packages/pypi \ -u your_gitlab_username \ -p your_personal_access_token \ dist/* - Используя токен развертывания проекта (Deploy Token):
twine upload --repository-url https://gitlab.com/api/v4/projects/nativebpm%2Fsdk/packages/pypi \ -u gitlab+deploy-token-name \ -p deploy_token_password \ dist/*
- Используя личный токен доступа (Personal Access Token):