Metadata-Version: 2.1
Name: libscanner-unir
Version: 1.0.1
Summary: Чтение DataMatrix, Code 128, GS1-128 и EAN/UPC одним вызовом — universal barcode and DataMatrix reader
Keywords: datamatrix,barcode,code128,gs1-128,sscc,ean-13,upc,gs1,chestny-znak,scanner
License: Proprietary
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Classifier: Topic :: Multimedia :: Graphics :: Capture
Classifier: Natural Language :: Russian
Project-URL: Homepage, https://libscanner.com
Project-URL: Documentation, https://libscanner.com/docs/universal-reader/?lang=python
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# unir — универсальный ридер кодов для Python

Читает одним вызовом коды разных символик на одном кадре: DataMatrix (ECC200,
ГОСТ Р ИСО/МЭК 16022, коды «Честного знака»), Code 128, GS1-128 (SSCC),
EAN-13, EAN-8, UPC-A и UPC-E. Кадры камеры и конвейера, фото этикеток.

Документация: https://libscanner.com/docs/universal-reader/?lang=python

> **English.** A universal barcode reader for Python: DataMatrix (GS1),
> Code 128, GS1-128 (SSCC), EAN-13/8, UPC-A/E in one call. Import as `unir`.
> Windows x64 and Linux (x86-64, ARM64, ARMv7, glibc 2.36+). 30-day free
> trial, then a license from https://libscanner.com/en/. Documentation:
> https://libscanner.com/en/docs/universal-reader/?lang=python

## Что внутри

- пакет `unir` — обёртка на `ctypes`, без внешних зависимостей;
- собранная библиотека `unir_c` (`unir_c.dll` / `libunir_c.so`) в `unir/_lib/`;
- утилита командной строки `unir` — после установки это команда окружения
  (и `python -m unir`): `unir снимок.png`, `unir --license status`, справка —
  `unir --help`.

Компилировать ничего не нужно: колесо уже содержит библиотеку под свою
платформу и годится для любого Python 3.9+.

## Установка

```sh
pip install libscanner_unir-1.0.1-py3-none-<платформа>.whl
```

Колесо — в разделе «Загрузки» личного кабинета https://libscanner.com. Пакет импортируется
как `unir`. Платформы: Windows x64, Linux x86-64, ARM64 и ARMv7 (glibc 2.36 и
новее: Debian 12, Ubuntu 23.04+, Raspberry Pi OS Bookworm).

## Быстрый старт

```python
import unir

result = unir.scan_file("этикетка.jpg", unir.Settings.multi(0))   # все коды на снимке
for code in result.codes:
    print(code.symbology_name, code.text)
```

Только нужные символики и предел времени на кадр:

```python
s = unir.Settings.single()
s.symbologies = unir.Symbology.DATAMATRIX | unir.Symbology.GS1_128
s.budget_ms = 200
scanner = unir.Scanner(s)            # создаётся один раз, а не на кадр
result = scanner.scan_file("кадр.png")
```

Кадр из чужого буфера — без копирования, видом на него:

```python
view = unir.ImageView(buf, width, height, stride, unir.PixelFormat.GRAY8)
result = scanner.scan(view)
```

`Code.text` — `bytes`: разделитель GS1 остаётся байтом `0x1D`.

## Лицензия

Пробный период — 30 дней с первого запуска на машине, без регистрации и без
сети.

Активация: вписать ключ из письма (`UNIR-...`) в текстовый файл `unir.key` и
положить его в каталог `unir/_lib/` установленного пакета — рядом с
библиотекой и утилитой (ключ у них общий). Каталог показывает

```sh
python -c "import unir, os; print(os.path.join(os.path.dirname(unir.__file__), '_lib'))"
```

Библиотека активирует ключ по сети сама при первом обращении. Из кода:

```python
import unir.license as license

s = license.status()
if not s["can_scan"]:
    print(s["message"])
```

Без интернета: личный кабинет https://libscanner.com → Лицензии → «Активация без интернета».
