semvec/pypi-packages huggingface dataset:
acs-data-collection 1.0.8
ACS Data Collection Service - Professional data collection from marketplaces to ClickHouse
Requires Python: >=3.7

# ACS Data Collection Service

**AbovyansConsultingServices — сервис сбора данных с маркетплейсов в ClickHouse**

Коннекторы загружают данные из API. Проект работает на Docker и пишет в ClickHouse; библиотеку можно использовать и отдельно.

### Поддерживаемые платформы

WB, Ozon, МойСклад, Яндекс.Маркет, Яндекс.Директ, VK, Bitrix24, AlfaCRM, Google Sheets.

### Быстрый старт

1. Установите Docker.
2. Скачайте [docker-compose.yml](https://raw.githubusercontent.com/abovyanmg/data-collection-service/main/docker-compose.yml) в папку с настройками.
3. Положите туда же `settings.xlsx` (структура: лист db — БД и Telegram, остальные листы — платформы).
4. Запуск: `docker-compose up -d`

Подробнее по Docker: [DOCKER.md](DOCKER.md)

### Конфигурация

- **settings.xlsx** — лист «db»: host, port, user, password, database, bot_token, chats; листы платформ: токены, отчёты, расписание.
- ClickHouse: порт 8123 (HTTP), логи: `docker-compose logs -f`

### Поддержка

- Issues: https://github.com/abovyanmg/data-collection-service/issues
- Email: abovyan.mg@gmail.com

### Лицензия

Разработано: AbovyansConsultingServices. Основано на открытых технологиях.

### Контекст для разработки (ИИ-агентам)

- **Полная документация для агентов:** см. файл `AGENTS.md` в родительской папке ACS (выше repos). Там архитектура, правила, ссылки на Morin, пайплайн обновления.
- **История багов:** `BUGS_AND_FIXES.md` — детальный разбор всех починок с паттернами диагностики.
- **Библиотека:** `admin/library/acs_data_library/`; точка входа: `admin/docker/upload_main.py`. PyPI: `acs-data-collection`.
- **Текущая версия:** см. `setup.py` (поднимать при каждом релизе).
- **Золотое правило:** при багах сверяйся с рабочим кодом Morin на GitHub (https://github.com/morinad/morin).

### Безопасность

Владелец может передавать логины и пароли агентам (ИИ или людям) для выполнения и проверки проекта. **Ни при каких обстоятельствах** не размещать эти логины и пароли в общедоступных местах: в репозитории на GitHub, в файлах, которые выгружаются и могут стать доступны третьим лицам, в примерах кода, в коммитах и т.п. Только локально или в защищённых каналах.

### Версии

Текущая версия: **1.0.6** (2026-02-16). Полная история: `CHANGELOG.md` в папке ACS.

### Благодарности

**Спасибо за базис: Morinad**

**Особая благодарность Александру Морину (@alexdirect)** — за знания и вдохновение.
isolate 0.24.1
Managed isolated environments for Python
Requires Python: >=3.8

# Isolate

Run any Python function, with any dependencies, in any machine you want. Isolate offers a
pluggable end-to-end solution for building, managing, and using isolated environments (virtualenv,
conda, remote, and more).


## Motivation

![XKCD 1987](https://imgs.xkcd.com/comics/python_environment.png)

The fact that nearly every piece of software uses some other libraries or some
other programs is undeniable. Each of these come with their set of dependencies,
and this chain moves forward. Once there are enough 'nodes' in the chain, then
the ["dependency mess"](https://en.wikipedia.org/wiki/Dependency_hell) starts
to surface and our lives become much harder.

Python tried to solve it by recommending the "virtual environment" concept. In
theory it was designed to isolate environments of different projects, so my project
A can depend on `pandas==1.0.0` while B depends on `pandas==2.0.0` and whichever
project I choose to work with, I just activate its own environment.

Overall this was a very nice solution that did work, and still continues to work
for this use case. But as with every other scoped fix, in time other problems started
to appear that demand a much narrower scope (like defining module-level dependencies,
or even function-level ones for cloud runtimes that allow seamless integration with the
rest of your code running in a different machine).

However, unlike "virtual environment" concept, each of the projects that tried to tackle
this problem lacked a universal interface which one can simply define a set of requirements
(this might be dependencies, size of the machine that is needed to run it, or something completely
different) and can change it without any loss. Isolate is working towards a future where this
transititon is as seamless as the transition from your local environment to the remote
environment.

## Contributing

### Installing in editable mode with dev dependencies

```
pip install -e '.[dev]'
```

### Running tests

```
pytest
```

### Pre-commit

```
pre-commit install
```

### Commit format

Please follow [conventional commits specification](https://www.conventionalcommits.org/) for descriptions/messages.
multilat-localizer 0.1.0
Universal MultiLateration Localization System with flexible input/output adapters
Requires Python: >=3.10
Keywords: localization, trilateration, multilateration, mavlink, ros2, anchors

# MultiLat Localizer

Universal multilateration localization with pluggable input/output adapters for distance measurements and position output.

**Version:** 1.0.0

## Features

- **Inputs:** Serial (UWB/RTK-DW1000), MQTT, UDP, File; custom adapters via `with_input()`
- **Outputs:** MAVLink, MAVROS (ROS2), UDP, File, Console; multiple outputs at once
- **Calibration:** None, Linear, Quadratic, Cubic
- **GPS:** ENU → GPS via pymap3d; frequency throttling; message type (GPS / Position / Both)
- **Config:** Python API only (no config files)

## Installation

```bash
pip install multilat-localizer
```

Optional: `pip install multilat-localizer[mqtt]` (MQTT), `multilat-localizer[ros2]` (ROS2), `.[dev]` (development).

## Quick Start

```python
from multilat_solver import ConfigBuilder, MultiLatLocalizerApp, CalibrationType
from multilat_solver.common_types import MessageType
from multilat_solver.output_adapters import ConsoleOutputAdapter
import logging

logging.basicConfig(level=logging.INFO, format="%(levelname)s %(name)s: %(message)s")

config = (ConfigBuilder()
    .with_localization(
        anchor_positions={1: (0, 0, 0), 2: (3, 0, 0), 3: (0, 3, 0)},
        calibration_type=CalibrationType.LINEAR,
        calibration_params=[1.0, 0.0],
    )
    .with_serial_input(port="/dev/ttyUSB0", baud=460800)
    .with_output("console", ConsoleOutputAdapter(format="human", message_type=MessageType.BOTH, frequency=10))
    .build())

app = MultiLatLocalizerApp(config)
app.run()
```

## Documentation

- [Configuration](docs/configuration.md) · [Input adapters](docs/input-adapters.md) · [Output adapters](docs/output-adapters.md)
- [Calibration](docs/calibration.md) · [Examples](docs/examples.md) · [Custom adapters](docs/extension.md)

## Adapters

| Input   | Description                    |
|---------|--------------------------------|
| Serial  | Binary protocol (UWB/RTK-DW1000) |
| MQTT    | JSON over MQTT `[mqtt]`        |
| UDP     | JSON over UDP                  |
| File    | JSON file polling              |

| Output  | Description                    |
|---------|--------------------------------|
| MAVLink | ArduPilot/PX4                  |
| MAVROS  | ROS2 topics `[ros2]`           |
| UDP     | JSON over UDP                  |
| File    | JSONL file                     |
| Console | Human or JSON                  |

## Examples

- `examples/basic_usage.py` — Serial in, console/file/MAVLink out
- `examples/multi_output.py` — Multiple outputs
- `examples/mavlink_input_with_sim.py` — MAVLink distances in + simulator
- `examples/uavcan_input_mavlink_output.py` — Custom UAVCAN input → MAVLink out

## Development

```bash
git clone https://github.com/Innopolis-UAV-Team/multilat_solver
cd multilat_localizer
pip install -e ".[dev]"
pytest
```

Layout: `src/multilat_solver/` — `core.py`, `config.py`, `app.py`, `input_adapters.py`, `output_adapters.py`, `common_types.py`.