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+.
Установка
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).
Быстрый старт
import unir
result = unir.scan_file("этикетка.jpg", unir.Settings.multi(0)) # все коды на снимке
for code in result.codes:
print(code.symbology_name, code.text)
Только нужные символики и предел времени на кадр:
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")
Кадр из чужого буфера — без копирования, видом на него:
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/ установленного пакета — рядом с
библиотекой и утилитой (ключ у них общий). Каталог показывает
python -c "import unir, os; print(os.path.join(os.path.dirname(unir.__file__), '_lib'))"
Библиотека активирует ключ по сети сама при первом обращении. Из кода:
import unir.license as license
s = license.status()
if not s["can_scan"]:
print(s["message"])
Без интернета: личный кабинет https://libscanner.com → Лицензии → «Активация без интернета».
Metadata
Release files for libscanner-unir 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| libscanner_unir-1.0.1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details for libscanner_unir-1.0.1-py3-none-win_amd64.whl |
| libscanner_unir-1.0.1-py3-none-manylinux_2_36_x86_64.whl | Python 3 | none | Linux glibc 2.36+ x86-64 | Details for libscanner_unir-1.0.1-py3-none-manylinux_2_36_x86_64.whl |
| libscanner_unir-1.0.1-py3-none-manylinux_2_36_armv7l.whl | Python 3 | none | Linux glibc 2.36+ ARMv7l | Details for libscanner_unir-1.0.1-py3-none-manylinux_2_36_armv7l.whl |
| libscanner_unir-1.0.1-py3-none-manylinux_2_36_aarch64.whl | Python 3 | none | Linux glibc 2.36+ ARM64 | Details for libscanner_unir-1.0.1-py3-none-manylinux_2_36_aarch64.whl |
Total release size: 12.6 MB
Release files / libscanner_unir-1.0.1-py3-none-win_amd64.whl
| Download URL | libscanner_unir-1.0.1-py3-none-win_amd64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7a2ddc33f93624f4aa98b8e73dd88edee3d15fbcc06bc2867d00317043316220
|
|
BLAKE2b-256 checksum How to use checksums |
dbc901a6c76a71e4072b00b5d40a77e33a4ad84c527e9ea3b164f8d35d69164d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / libscanner_unir-1.0.1-py3-none-manylinux_2_36_x86_64.whl
| Download URL | libscanner_unir-1.0.1-py3-none-manylinux_2_36_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | Linux glibc 2.36+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
fa5d07a1c42685a25392e99f8744f318b69736b2abcdb14a1cdb97ff74445456
|
|
BLAKE2b-256 checksum How to use checksums |
4d6b86933d9cab76477abac39c416d9e81d4621609e58e833d5c6ba0fa7dec97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / libscanner_unir-1.0.1-py3-none-manylinux_2_36_armv7l.whl
| Download URL | libscanner_unir-1.0.1-py3-none-manylinux_2_36_armv7l.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Linux glibc 2.36+ ARMv7l Python 3 |
|
SHA-256 checksum How to use checksums |
f050c6f7d84bdbe4e4bd94dc2cfbf6ae7422db70150e61ea5ec44b05cc1ce603
|
|
BLAKE2b-256 checksum How to use checksums |
d976f4820337a7e5dbef3ba4de8f7535f10e05a31c8858e058c7460269ff79bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / libscanner_unir-1.0.1-py3-none-manylinux_2_36_aarch64.whl
| Download URL | libscanner_unir-1.0.1-py3-none-manylinux_2_36_aarch64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | Linux glibc 2.36+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
f7c50e21d7a824b11039d3e84007f625cf6337aa724278a432f95697a82d7bd2
|
|
BLAKE2b-256 checksum How to use checksums |
dbf921f0da378bbdb5ed5297ce54bf49db6424a9eb0f4d2123b024d44806878f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Security for libscanner-unir 1.0.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.