Skip to main content

QR decoding + scannability scoring for artistic, AI-generated, and photo-captured QR codes — Rust core via PyO3.

Project description

qrcode-ai-scanner (Python)

QR decoding + scannability scoring for artistic / AI-generated / photo-captured QR codes — the Rust qrcode-ai-scanner engine, via PyO3. Same versioned ScanReport contract as the Rust, Node and WASM surfaces.

import qrcode_ai_scanner as qr

with open("image.png", "rb") as f:
    report = qr.scan(f.read(), profile="full")   # "full" | "fast" | "frame"

if report["detections"]:
    d = report["detections"][0]
    print(d["content"]["text"])
    print(report["score"]["value"], report["score"]["grade"])  # 0-100 + ISO band
    print(report["hints"])                                      # machine-actionable
  • scan(image: bytes, profile="full", max_dimension=None, max_pixels=None, budget_ms=None) -> dict — decode encoded bytes (PNG/JPEG/WebP/GIF).
  • scan_frame(rgba: bytes, width: int, height: int, profile="frame", max_dimension=None, max_pixels=None, budget_ms=None) -> dict — raw RGBA frame, no image-format roundtrip.
  • Optional kwargs: max_dimension / max_pixels cap inputs BEFORE any pixel work (defaults 10000 px / 64 MP — lower them for untrusted uploads); budget_ms bounds the scan wall-clock (0 = unbounded — leave unset for strictly reproducible reports).
  • "No QR found" returns a dict with empty detections; ValueError is raised only for invalid input.

The returned dict is the same ScanReport documented in the spec.

License: AGPL-3.0-or-later · © SuperNovae Studio.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qrcode_ai_scanner-0.8.0.tar.gz (165.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

qrcode_ai_scanner-0.8.0-cp38-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.8+Windows x86-64

qrcode_ai_scanner-0.8.0-cp38-abi3-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

qrcode_ai_scanner-0.8.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

qrcode_ai_scanner-0.8.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

qrcode_ai_scanner-0.8.0-cp38-abi3-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

qrcode_ai_scanner-0.8.0-cp38-abi3-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file qrcode_ai_scanner-0.8.0.tar.gz.

File metadata

  • Download URL: qrcode_ai_scanner-0.8.0.tar.gz
  • Upload date:
  • Size: 165.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for qrcode_ai_scanner-0.8.0.tar.gz
Algorithm Hash digest
SHA256 495e0586e2a3315eba2c91dc6983b0a74e568587e05957b3f8fc996d97afd8c3
MD5 872c8962c5a6be23f06ec7a2432b53ca
BLAKE2b-256 895b321d47583949aa9ae06b2a09f7d2fca5465de7c2f39d68a5edc579852c2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for qrcode_ai_scanner-0.8.0.tar.gz:

Publisher: python.yml on supernovae-st/qrcode-ai-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qrcode_ai_scanner-0.8.0-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for qrcode_ai_scanner-0.8.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 15852378f0425ea92eecb6389aabf34f077c5a9a71ef9c81e046f7cdd387d612
MD5 0cda4059f318a9873a0480520a919752
BLAKE2b-256 cb43892d839ba6e09eba76b3ddabe3ee10845f8d3ddaba474825b046868f1270

See more details on using hashes here.

Provenance

The following attestation bundles were made for qrcode_ai_scanner-0.8.0-cp38-abi3-win_amd64.whl:

Publisher: python.yml on supernovae-st/qrcode-ai-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qrcode_ai_scanner-0.8.0-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for qrcode_ai_scanner-0.8.0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d1e3e860a0fb1e5da198b8323257f58c4163208fe7fd598c4dd1247977814887
MD5 5a1c4d3c6d341617fe3dfbf5b38defd8
BLAKE2b-256 f59cd13e56fbf9a27abfd790a48455fd04e07d23113b8383995cf3f137fcbefb

See more details on using hashes here.

Provenance

The following attestation bundles were made for qrcode_ai_scanner-0.8.0-cp38-abi3-musllinux_1_2_x86_64.whl:

Publisher: python.yml on supernovae-st/qrcode-ai-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qrcode_ai_scanner-0.8.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qrcode_ai_scanner-0.8.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b0536ba7bb1a925ca00bf7610da1df6155430cab9e167755c3c1c61eb1197df7
MD5 4d4aa032ad4903b9ea81a18bc7f59233
BLAKE2b-256 5120f520859908a18cbe75a16874aa449bbdeb07207a70f4523f0beaba3931b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for qrcode_ai_scanner-0.8.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: python.yml on supernovae-st/qrcode-ai-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qrcode_ai_scanner-0.8.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for qrcode_ai_scanner-0.8.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2c6098fde58aefd143391a9b28d335b43d301b42a5e9ad194b0f78faa1f78d1b
MD5 8076d54aab8af3578a4c507d67bc44aa
BLAKE2b-256 1223eeb27856560e99193fc3979e19a2be49539a0456467ac0a482c21dfa0752

See more details on using hashes here.

Provenance

The following attestation bundles were made for qrcode_ai_scanner-0.8.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: python.yml on supernovae-st/qrcode-ai-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qrcode_ai_scanner-0.8.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qrcode_ai_scanner-0.8.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c56e43a380456737916771ada94ba8b03e401bd41cf8bd7427506b72a872c4ac
MD5 bd471fc0eb2967bf2e6e0b646c0f1275
BLAKE2b-256 173d31dbf49c8115b05e461b5d568048bea8411e6dbdaa896f702f94127d7c04

See more details on using hashes here.

Provenance

The following attestation bundles were made for qrcode_ai_scanner-0.8.0-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: python.yml on supernovae-st/qrcode-ai-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qrcode_ai_scanner-0.8.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for qrcode_ai_scanner-0.8.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dd03f7352de1bc2e4014b62a93c6456de48719bc368305d29466f57a23d93a9b
MD5 10e9bd928c502e324f90cc158e18a354
BLAKE2b-256 d49eb30de15a7553838ce852a6bc3dadb1707cb57a054d3621e85e9c9995825e

See more details on using hashes here.

Provenance

The following attestation bundles were made for qrcode_ai_scanner-0.8.0-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: python.yml on supernovae-st/qrcode-ai-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page