Skip to main content

Лицензия Apache 2.0 Python 3.12+ Coverage Status PyPI

prs-connector-core

Базовый модуль для создания коннекторов платформы Пересвет.

Коннектор - программа, которая может собирать данные с какого-либо источника и отправлять их в платформу. Также коннектор может отсеивать лишние данные и проводить обработку полученных данных с помощью языка JSONata.

Описание проекта

prs-connector-core — это Python-модуль, реализующий общую функциональность для коннекторов платформы Пересвет. Модуль предоставляет базовые классы, на основе которых можно создавать коннекторы для конкретных источников данных (OPC, Modbus, базы данных и др.).

Базовая функциональность и основные возможности:

  • Установление связи с платформой Пересвет по протоколу MQTT
  • Получение от платформы конфигурации:
    • настройка связи с источником данных,
    • параметры логирования,
    • список тегов, по которым необходимо получать данные
  • Поддержка защищённого канала связи с SSL/TLS
  • Преобразование данных через JSONata
  • Отсеивание лишних данных
  • Локальное кэширование конфигурации при потере связи с платформой
  • Буферизация данных при потере связи с платформой
  • Ротация логов

После восстановления MQTT коннектор не шлёт «текущие» значения в data_set до ответа платформы prsConnector.full_configuration: платформа сначала пишет в теги null с качеством 101. Накопленный буфер разрыва (исходные метки времени) можно отправить сразу после CONNECT. После разбора первого конфига сессии ядро заново читает все привязанные теги и отправляет снимок, даже если значение на источнике не изменилось.

Работа с проектом

Требования

  • Python 3.12 или новее
  • pip 21.3+
  • pipenv
  • pyenv

Работа над исходным кодом

Клонируйте репозиторий и выполните команды в консоли:

git clone git@github.com:mp-co-ru/prs-connector-core.git
cd prs-connector-core
pipenv install

Запуск тестов

$ pytest

Сборка пакета

$ python -m build

Запуск нескольких экземпляров коннектора

Проекты коннекторов, использующие prs_connector_core.main(), могут запускать несколько экземпляров на одной машине. Каждый экземпляр должен получать свой JSON-файл конфигурации с уникальным id:

python connector.py --config /etc/prs-connectors/modbus-line-1.json
PRS_CONNECTOR_CONFIG=/etc/prs-connectors/modbus-line-2.json python connector.py

Для постоянного запуска нескольких экземпляров добавлены шаблоны:

  • deployment/systemd/prs-connector@.service.example;
  • deployment/docker/compose.example.yml;
  • deployment/docker/Dockerfile.example.

Подробная процедура описана в docs/source/multi_instance_launch.rst.

Версионирование

Версия пакета не хранится в коде вручную, а вычисляется при сборке из имени git-тега с помощью setuptools-scm.

  • В репозитории создаются теги вида v0.9.0, v1.0.0 и т.п. При сборке (python -m build) setuptools-scm по текущему коммиту и тегам определяет версию и генерирует файл prs_connector_core/_version.py (он в .gitignore и не коммитится).
  • В коде версия доступна как prs_connector_core.__version__: она берётся из сгенерированного _version.py, при его отсутствии — из метаданных установленного пакета, иначе используется "0.0.0.dev0" (например, при разработке без тега).
  • Релизы: при публикации Release в GitHub с тегом (например v0.9.0) workflow собирает пакет с этой версией и публикует его в PyPI.

Metadata

Release files for prs-connector-core 0.16.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for prs-connector-core 0.16.0
File Size Uploaded
prs_connector_core-0.16.0.tar.gz 138.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for prs-connector-core 0.16.0
File Interpreter ABI Platform
prs_connector_core-0.16.0-py3-none-any.whl Python 3 none any Details

Total release size: 164.9 kB

Release files / prs_connector_core-0.16.0.tar.gz

Download URL prs_connector_core-0.16.0.tar.gz
Size 138.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d283cf8bce8b075057d03463f7f0f67ae684de6760e7dc6e85439e4b22dba4e0
BLAKE2b-256 checksum
How to use checksums
cfb4aaeb3526043cd8d87b89380140f0e96f2900a2a86777513e0742fc7bcafb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release files / prs_connector_core-0.16.0-py3-none-any.whl

Download URL prs_connector_core-0.16.0-py3-none-any.whl
Size 26.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9452e34e21d6a4a9cfc053c8022e0aeed6f00b516edc63a3cbff36ff02822a36
BLAKE2b-256 checksum
How to use checksums
405d93c40bf98dcb6bc5f77c789b7c39bc24b0b45c263258eb1809be84e2ce3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.16.0 This release

2 release files

0.14.0

2 release files

0.12.0

2 release files

0.10.5

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.4.2

2 release files

0.4.0

2 release files

0.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page