Skip to main content

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)

Table of built distributions (wheels) for libscanner-unir 1.0.1
File Actions
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.

Release history Release notifications | RSS feed

This release

1.0.1 This release

4 release files No provenance

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