Metadata-Version: 2.4
Name: prs_connector_core
Version: 0.4.0
Summary: Базовый модуль для коннекторов платформы Пересвет
Author-email: ООО МПК <info@mp-co.ru>
License: Apache-2.0
Project-URL: Homepage, https://github.com/mp-co-ru/prs-connector-core
Project-URL: Repository, https://github.com/mp-co-ru/prs-connector-core
Project-URL: Documentation, https://mp-co-ru.github.io/prs-connector-core/
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiomqtt==2.3.2
Requires-Dist: jsonata-python==0.5.3
Requires-Dist: colorlog==6.9.0
Requires-Dist: python-json-logger==3.3.0
Requires-Dist: pydantic==2.11.3
Requires-Dist: aiofiles==24.1.0
Requires-Dist: ciso8601==2.3.2
Dynamic: license-file

[![Лицензия Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
![Python 3.12+](https://img.shields.io/badge/Python-3.12%2B-green.svg)
[![Coverage Status](https://coveralls.io/repos/github/mp-co-ru/prs-connector-core/badge.svg?branch=dev)](https://coveralls.io/github/mp-co-ru/prs-connector-core?branch=dev)

# prs-connector-core

Базовый модуль для создания коннекторов платформы [Пересвет](https://github.com/mp-co-ru/peresvet).

Коннектор - программа, которая может собирать данные с какого-либо источника и отправлять их в платформу. Также коннектор может отсеивать лишние данные и проводить обработку полученных данных с помощью языка [JSONata](https://jsonata.org/).

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

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

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

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

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

> [!WARNING]
> Работа тестировалась на операционной системе Ubuntu.

### Требования
- Python 3.12 или новее
- pip 21.3+
- pipenv
- pyenv

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

Клонируйте репозиторий и выполните команды в консоли:
```bash
git clone git@github.com:mp-co-ru/prs-connector-core.git
cd prs-connector-core
pipenv install
```

#### Запуск тестов
```bash
$ pytest
```

#### Сборка пакета
```bash
$ python -m build
```
