Skip to main content

CodaraScan — Offline Barcode Detection for Images and PDFs

PyPI Python CI License

One local Python API for detecting, localizing, and decoding 40 selectable 1D and 2D barcode formats in images and PDF documents.

CodaraScan is an open-source, offline barcode detector, barcode localizer, decoder, and document scanner for Python. It finds multiple linear and matrix barcodes, returns their quadrilateral coordinates, and preserves decoded text and original payload bytes. Multi-page PDF processing, ordered concurrency, streaming results, and a command-line interface are included—without a cloud API, telemetry, or runtime model download.

For teams looking for a universal barcode detection layer, CodaraScan provides one stable interface across QR Code, Data Matrix, PDF417, Aztec, MaxiCode, Code 128, Code 39, EAN, UPC, ITF, DataBar, and other formats. The exact 40-format catalog and its validation boundaries are documented below; “multi-format” does not mean that every degraded barcode is guaranteed to decode.

Install · Quick start · PDF batch scanning · CLI · Formats · API reference · PyPI

Alpha notice — CodaraScan 0.1.3 is alpha software. Its APIs and schemas may change during 0.x. Pin an exact version and evaluate it against your own documents before production use. See the known limitations and release policy.

Why CodaraScan?

Most barcode libraries focus on decoding a clean, tightly cropped symbol. Document workflows need more: finding an unknown number of barcodes on a page, retaining their geometry, processing long PDFs in a controlled order, and handling symbols that can be located but not decoded. CodaraScan exposes those states explicitly.

Capability What CodaraScan provides
Barcode detection Finds multiple 1D/linear and 2D/matrix symbols in an image or PDF page
Barcode localization Returns clockwise pixel and normalized quadrilaterals, even when decoding is disabled
Barcode decoding Returns Unicode text, exact raw payload bytes, and a canonical format name
Document scanning Reads selected PDF pages, preserves requested order, and supports bounded parallel work
Batch processing Scans complete or selected multi-page PDFs and can stream pages without accumulating them
Format coverage 40 selectable formats: 27 linear and 13 matrix selections in version 0.1.3
Recovery profiles fast Tessera mode for lower latency; robust Mosaic mode for stronger recovery
Local processing No server, network request, telemetry, external executable, or runtime model download
Integration Typed Python API, deterministic JSON, CLI, schemas, and a private persistent worker protocol
Deployment Native wheels for supported Linux, macOS, and Windows targets; Python fallback for Tessera

Common use cases

  • Extract QR Codes and barcodes from scanned PDF documents.
  • Localize multiple barcodes on shipping labels, forms, invoices, and archive pages.
  • Process document batches while keeping page results in deterministic order.
  • Read retail, logistics, inventory, manufacturing, and library barcode formats.
  • Return barcode coordinates for redaction, cropping, indexing, annotation, or review.
  • Run barcode recognition inside private, air-gapped, or offline environments.
  • Add a local barcode reader to Python, OpenCV, Pillow, desktop, or backend workflows.

Installation

CodaraScan supports CPython 3.11, 3.12, 3.13, and 3.14.

python -m pip install codarascan

For reproducible alpha deployments, pin the current release:

python -m pip install codarascan==0.1.3

Quick start

Detect and decode barcodes in an image

from codarascan import DecodedSymbolResult, Scanner

scanner = Scanner(
    mode="fast",       # "fast" (Tessera) or "robust" (Mosaic)
    symbols="all",     # "linear", "2d", or "all"
    decode=True,
)

result = scanner.scan_image("shipping-label.png")

for symbol in result.symbols:
    print("status:", symbol.status.value)
    print("corners:", [(point.x, point.y) for point in symbol.quad])

    if isinstance(symbol, DecodedSymbolResult):
        print("format:", symbol.format)
        print("text:", symbol.text)
        print("raw bytes:", symbol.raw_bytes)

result.symbols may contain zero, one, or multiple detections. Every symbol has full-image pixel geometry in quad and resolution-independent coordinates in normalized_quad.

Scan only selected barcode formats

Narrowing the format set can reduce unnecessary work and makes the expected contract explicit:

from codarascan import Scanner

scanner = Scanner(
    mode="robust",
    symbols="all",
    formats=["qr-code", "data-matrix", "code-128", "ean-13"],
)

result = scanner.scan_image("warehouse-label.jpg")

Canonical names and common aliases are accepted. Unknown formats and contradictions such as symbols="linear" with formats=["qr-code"] fail at configuration time.

Localize barcodes without decoding

Use detection-only mode when you need coordinates for crops, overlays, redaction, indexing, or a separate decoding pipeline:

from codarascan import Scanner

localizer = Scanner(symbols="all", decode=False)
result = localizer.scan_image("document.png")

for symbol in result.symbols:
    assert symbol.status.value == "localized"
    print(symbol.kind.value, symbol.quad, symbol.normalized_quad)

Localization-only results deliberately have no text, raw_bytes, or format attributes.

Scan a region of interest

The ROI is (x, y, width, height) normalized to the oriented full image. The returned barcode coordinates remain relative to the full image.

result = scanner.scan_image(
    "form.png",
    roi=(0.50, 0.00, 0.50, 0.40),  # top-right portion of the page
)

Scan a multi-page PDF

Page numbers are one-based. Requested order is preserved even when pages are processed concurrently.

from codarascan import Scanner

scanner = Scanner(mode="robust", symbols="all")

document = scanner.scan_document(
    "archive-batch.pdf",
    pages=[3, 1, 2],
    workers=4,          # positive integer or "auto"
    on_error="collect", # keep successful pages and report page errors
)

for page in document.pages:
    print(f"page {page.page}: {len(page.image.symbols)} symbol(s)")

print("complete:", document.complete)
print("errors:", document.errors)

Use on_error="raise" for fail-fast behavior. With "collect", failed pages are recorded as typed errors while successful pages remain available.

Stream a large PDF with bounded memory

iter_document yields ordered page results without storing all returned pages:

from codarascan import Scanner

scanner = Scanner(mode="fast")

with scanner.iter_document("large-document.pdf", workers="auto") as pages:
    for page in pages:
        save_result(page)

    print("complete:", pages.complete)
    print("errors:", pages.errors)

At most the selected worker count is in flight. Access and rendering are serialized; owned pixel snapshots are then analyzed concurrently.

Use the one-off functions

For short scripts, the module-level functions reuse cached immutable scanner configurations:

from codarascan import scan_document, scan_image

image_result = scan_image("label.png", mode="fast", formats=["code-128"])
pdf_result = scan_document("forms.pdf", mode="robust", workers=2)

Long-running applications can create a Scanner once, optionally call scanner.warm(), and safely share the immutable configuration across threads.

Barcode detection, localization, and decoding

These terms describe different parts of barcode recognition:

  • Localization (also spelled localisation) describes where a detected barcode is. CodaraScan returns four clockwise corners rather than only an axis-aligned bounding box.
  • Decoding interprets the bars or modules and returns the payload and barcode symbology.

A difficult symbol may be localized without being decoded. CodaraScan keeps that information instead of silently discarding the region.

Status Meaning
decoded Geometry, format, Unicode text, and raw payload bytes are available
localized_unresolved_linear A linear/1D barcode was confidently localized, but its payload could not be decoded
localized_unresolved_matrix A matrix/2D barcode was confidently localized, but its payload could not be decoded
localized Geometry-only result produced with decode=False
review_candidate A barcode-like region was found with weaker evidence and may require human review

Confidence is an engine-specific evidence score in [0, 1], not a calibrated probability. It is not directly comparable between Tessera and Mosaic. Treat status as the primary semantic signal.

Fast vs. robust barcode scanning

CodaraScan makes the performance/recovery choice explicit. It does not switch engines automatically.

Mode Engine Best fit Trade-off
mode="fast" Tessera Low-latency document scanning and common workflows Less exhaustive recovery
mode="robust" Mosaic Difficult inputs where stronger recovery is worth more work Higher CPU time and latency

Start with fast, measure on representative inputs, and choose robust where it materially improves your corpus. Avoid choosing a mode from synthetic benchmarks alone.

Supported barcode formats

CodaraScan 0.1.3 exposes 40 selectable barcode formats generated from the installed ZXing-C++ readable catalog: 27 linear/1D selections and 13 matrix/2D selections.

1D and linear barcodes

codabar, code-128, code-32, code-39, code-39-extended, code-39-standard, code-93, databar, databar-expanded, databar-expanded-stacked, databar-limited, databar-omni, databar-stacked, databar-stacked-omni, dx-film-edge, ean-13, ean-8, ean-upc, isbn, itf, itf-14, pzn, telepen, telepen-alpha, telepen-numeric, upc-a, upc-e.

2D and matrix barcodes

aztec, aztec-code, aztec-rune, compact-pdf417, data-matrix, maxicode, micro-pdf417, micro-qr-code, pdf417, qr-code, qr-code-model-1, qr-code-model-2, rmqr-code.

Inspect the catalog programmatically instead of hard-coding it:

from codarascan import supported_formats

groups = supported_formats()

for kind, formats in groups.items():
    print(kind, [item.name for item in formats])

Some selectors are semantic or family views, and clean-fixture coverage is not the same as production accuracy on blur, glare, damage, perspective, or poor quiet zones. See the compatibility notes and 0.1.0 format evidence.

Inputs and results

Image inputs

scan_image accepts:

  • str and pathlib.Path image paths;
  • encoded bytes, bytearray, and memoryview values;
  • Pillow images;
  • 2D uint8 grayscale NumPy arrays;
  • 3-channel BGR and 4-channel BGRA uint8 NumPy arrays.

EXIF orientation is applied to encoded and Pillow inputs. NumPy arrays are analyzed exactly as supplied and copied to isolate the scan from caller mutation.

PDF inputs

scan_document and iter_document accept PDF paths or encoded PDF bytes. Version 0.1 supports PDFs only through the document API; password-protected documents do not yet have a password parameter.

Geometry and payloads

Every symbol includes:

  • status and kind;
  • engine-specific confidence and contributing sources;
  • quad: four pixel-space points in top-left, top-right, bottom-right, bottom-left order;
  • normalized_quad: the same four points normalized by image width and height.

Image dimensions are recorded once as width and height on the containing image result. PDF page results record page, width, and height together; symbols do not repeat those dimensions.

A DecodedSymbolResult additionally includes format, text, its value alias, and exact raw_bytes.

Deterministic JSON

from codarascan import scan_image, to_json

result = scan_image("label.png", mode="robust")
print(to_json(result, indent=2))

to_json emits UTF-8, sorted keys, finite JSON numbers, and Base64-encoded raw bytes. JSON schemas and golden examples ship in codarascan/schemas for consumer contract tests.

Command-line interface

The codarascan CLI uses the same engines and result contract as the Python API.

# Scan an image and emit one JSON result
codarascan image shipping-label.png --mode fast --symbols all --json

# Restrict decoding to QR Code, Data Matrix, and Code 128
codarascan image mixed-label.png --formats qr-code,data-matrix,code-128 --json

# Return barcode locations without decoding payloads
codarascan image page.png --no-decode --json

# Scan selected PDF pages in parallel and stream NDJSON
codarascan document archive.pdf --pages 1-4,7 --workers auto --ndjson

Human-readable output is the default. --json emits one shared-schema result; --ndjson streams page objects and a final document summary. Standard output is reserved for results, while warnings and debug-output locations use standard error.

Exit code Meaning
0 Scan completed and found symbols
1 Scan completed successfully with no symbols
2 Invalid usage or input
3 Processing failure
4 Partial document result

Run codarascan image --help or codarascan document --help for every option.

Platform support

Official 0.1.3 wheels target:

Operating system Architectures Python
Linux glibc / manylinux x86_64, ARM64 CPython 3.11–3.14
macOS Intel x86_64, Apple Silicon ARM64 CPython 3.11–3.14
Windows x86_64 CPython 3.11–3.14

The native Tessera extension is included in supported wheels. If it cannot load, CodaraScan emits one warning and continues with the slower Python reference backend. Set CODARASCAN_FORCE_PYTHON=1 to exercise that path. Result metadata records the selected backend.

PyPy, CPython 3.10 and older, Alpine/musl, 32-bit systems, and Windows ARM64 are outside the initial support contract. See the full compatibility matrix.

Offline operation, privacy, and resources

Import, warm-up, image scanning, PDF rendering, CLI, and worker operations make no network requests and emit no telemetry. Default scans leave no persistent crops, overlays, rendered pages, or payload files.

Inputs, decoded payloads, diagnostics, and explicit debug output may still be sensitive. Applications should apply their own access control and retention policy.

CodaraScan intentionally imposes no hidden limits on input bytes, dimensions, pages, workers, CPU, memory, or result count. Large images, 300-DPI PDF rendering, broad format searches, diagnostics, and high worker counts can exhaust resources. Production callers own quotas, isolation, timeouts, admission control, and cancellation.

Frequently asked questions

How do I detect barcodes in a PDF with Python?

Install CodaraScan, create a Scanner, and call scanner.scan_document("file.pdf"). Use pages=[...] to select pages, workers="auto" for bounded parallel analysis, or iter_document to stream a large PDF without accumulating all page results.

Can CodaraScan find multiple barcodes in one image or document page?

Yes. Each image or page result contains a symbols tuple with zero, one, or multiple barcode detections. Each detection has its own status, kind, confidence, and quadrilateral.

Can it return barcode coordinates without reading the value?

Yes. Set decode=False in Python or pass --no-decode to the CLI. CodaraScan returns localization results with pixel and normalized quadrilaterals and does not expose payload attributes.

Is CodaraScan an offline barcode scanner?

Yes. Barcode detection, decoding, PDF rendering, the CLI, and the worker all run locally with no telemetry or network calls. No cloud account or API key is required.

Is CodaraScan a universal barcode reader?

It is a multi-format barcode detection layer with 40 selectable 1D and 2D formats in version 0.1.3. No honest scanner can guarantee every barcode under every capture condition, so CodaraScan publishes the exact catalog, evidence, and known limitations instead of making an unlimited compatibility claim.

Which mode should I use?

Begin with mode="fast" for lower latency. Evaluate mode="robust" when difficult inputs justify stronger recovery and extra computation. Benchmark both on your actual documents.

Is CodaraScan open source and usable commercially?

Yes. CodaraScan is released under the permissive Apache License 2.0. Review the license, notice, and third-party notices for the complete terms.

Documentation

The private codarascan _worker command provides a persistent, versioned, length-prefixed JSON protocol for backend adapters without opening a network port. It is not a public network service or a pre-1.0 stability promise.

Development and contributing

Contributions, reproducible bug reports, and representative barcode samples are welcome. Read CONTRIBUTING.md before opening a pull request.

git clone --recurse-submodules https://github.com/flh-raouf/codarascan.git
cd codarascan
python3.11 -m venv .venv
.venv/bin/python -m pip install -e ".[dev]"
.venv/bin/ruff check src/codarascan tests
.venv/bin/mypy
.venv/bin/python -m pytest
.venv/bin/python -m build

Research history remains under archive/ and benchmarks/; it is not installed as runtime package data.

Contact

CodaraScan is maintained by Abderraouf FELLAHI. For questions and bug reports, use GitHub Issues or email ma_fellahi@esi.dz.

License

CodaraScan is open-source software licensed under Apache-2.0. Third-party provenance is recorded in THIRD_PARTY_NOTICES.md.

Download files

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

Source Distribution

codarascan-0.1.3.tar.gz (208.2 kB view details)

Uploaded Source

Built Distributions

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

codarascan-0.1.3-cp314-cp314-win_amd64.whl (446.8 kB view details)

Uploaded CPython 3.14Windows x86-64

codarascan-0.1.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (252.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

codarascan-0.1.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (251.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

codarascan-0.1.3-cp314-cp314-macosx_11_0_arm64.whl (248.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

codarascan-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl (249.4 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

codarascan-0.1.3-cp313-cp313-win_amd64.whl (438.8 kB view details)

Uploaded CPython 3.13Windows x86-64

codarascan-0.1.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (252.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

codarascan-0.1.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (251.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

codarascan-0.1.3-cp313-cp313-macosx_11_0_arm64.whl (248.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

codarascan-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl (249.4 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

codarascan-0.1.3-cp312-cp312-win_amd64.whl (438.8 kB view details)

Uploaded CPython 3.12Windows x86-64

codarascan-0.1.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (252.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

codarascan-0.1.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (251.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

codarascan-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (248.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

codarascan-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl (249.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

codarascan-0.1.3-cp311-cp311-win_amd64.whl (438.8 kB view details)

Uploaded CPython 3.11Windows x86-64

codarascan-0.1.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (251.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

codarascan-0.1.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (251.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

codarascan-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (248.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

codarascan-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl (249.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file codarascan-0.1.3.tar.gz.

File metadata

  • Download URL: codarascan-0.1.3.tar.gz
  • Upload date:
  • Size: 208.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for codarascan-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ea90f2f1f9addf36b6c2a41dfd9f259df53ab17fd8739ba3261bca781b7a21e3
MD5 3007b815466486ad9afc17860c19474e
BLAKE2b-256 8260aa78fdc69baa25585768cfaf2982386909376c0c30154d4a27df96804dd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3.tar.gz:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: codarascan-0.1.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 446.8 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for codarascan-0.1.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0ad02adf6b74f6a7ee6c195ac20e07a413a5276bec762c3f6b743fce5526616d
MD5 24af2cf93d568f24ce5c0cab7b872b70
BLAKE2b-256 fbc3df42dcca81c21a5aaaef88e60038afdf34100e41dc914dfb739550d40d93

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp314-cp314-win_amd64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e9b68ef6998c54bc02e8188aa3a9024fa4344be85e744ec8a3c9051d26cbc375
MD5 6f1a7f08c8cb16000916556175ea30ba
BLAKE2b-256 84fa5c1aab4675a17a3179cba2af34420e844260ee201fab349f34b197e8f768

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e1ec566dfab7b09e2cf9ecb88c8aebfd950f885574b6ff57df034b2a13060242
MD5 e81836a8640771bb1c1af061747d072e
BLAKE2b-256 39d1a461144cb706d94acc7108cbf40bcd2e052e8baa8b1f14a872b402eb763f

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f6ce61db0bfd3fd65ac4497618e0adc1d0808971e15452ab80021f6a3c007d8
MD5 c87887c399fb09b61918727c4a8faecd
BLAKE2b-256 d9749d2d17bdee92d98dc2fbfc324ccc31ff53166eff320f1d8cec5fcda2900f

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 94721120c5a73d804ec4235a6bb8533853e57f5e26452bcd5b94336dfe344eb6
MD5 d2748960480f499e732f889997c122df
BLAKE2b-256 7dd93984f5d125aeae653766fc5852d7639edec8f7cc24f32bcc05f94d193434

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: codarascan-0.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 438.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for codarascan-0.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 12ed31d1aa1077f06e8e210629cbf1c0f28c60dcd561c9e9d7fedeccd30b73b5
MD5 7909b87f2b9102cd8b4161fc2863d82f
BLAKE2b-256 e210d17f6a86656abd9173db92134af81645515c89f2cd217d4b90665321c7e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp313-cp313-win_amd64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3ec9d6eaa807015faf8bcdc85a8e953b38a02c2ec3b9d70defe71e87933da623
MD5 a5b8fa5acf07c1f178274544c89ee7a0
BLAKE2b-256 c6aaab73eb3985c8d0fcab05fbc5ebc52329a8fc2c066349b6a8c0460ca87c8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 99952f903ad110080c92ea88d912532891395cf707c5964b2090b5de2929c043
MD5 797e2ef4e6bbec37d512bdc9672fe664
BLAKE2b-256 42086d4632bd6cf2918d7add55591dd1fce2ab0a03f921514e6fda4b2b9a765a

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d55390f873411f53e0e13d335a2e74b907565ae31f8bf4b65549c7f11fc1b4e
MD5 12493d2cefe2d32ad6d1f2c7563a810b
BLAKE2b-256 f669ccee93f2e040ab7f11b260f68c189a8ee5a810313ae1fba876a48eb19723

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 5810888ce74f2518e6222d0eeb8942106ed1737aecbb1d769c4c3c48f103cc49
MD5 201bd160658ec2de5ff0a97404d75006
BLAKE2b-256 096b854bd2b73d4471dd8a1529586b5a42f1826edfaaf4d4e5d20536dd246330

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: codarascan-0.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 438.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for codarascan-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d998bb9494bc88ffaa7b5e35260cf9479139ff4baf009e1d3764f74d181b5810
MD5 7118faccaf50ce7468af9f842acb3e43
BLAKE2b-256 6051767b7ab263cc40e959d892106bf47a09ade14abc7dbce8589d08fed23f27

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp312-cp312-win_amd64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e8e4694bdcfa3941f7a39480c13f665ecd837f43b573bfd07c8a0667e27d008
MD5 3fed0c289b67cb811f3f347be90583da
BLAKE2b-256 0da4f5182f10d7f8fd97e1118562c4aa600ea257e524d7fb585239f7317083e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7f82d63cdea8e85f228132ccc605456f23b5ba4664724623a675a64642b21243
MD5 be3bff0acdeb5cb1ad838d7fcbd2c739
BLAKE2b-256 2c0b1c0510224495c9a33460e8a93b7c9aef6be2ed1bda43b285f66e69b92d59

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b59c6faf399a99906b106143d60b019df03c1de06f60c8f1df02245bc8b1e394
MD5 d9d16f2ddb7fe3f52a09eec1bd582c42
BLAKE2b-256 5ee7b2a7c4e3f793bf5d45e476fd71373695f367fa8cd1984021ab3bf440268c

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6d3b913e7424b8aae6e42a946d291df7133270a1459e99f27328cb1967b47e59
MD5 dcc4805c4e6f7c3bb774b0ae57552473
BLAKE2b-256 7d60c5c83310ba1b480975f92c9ec3491a81083c4be7839a3a1400b9b7b36e32

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: codarascan-0.1.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 438.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for codarascan-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0b8335317d220e7bebdae32037eb7c958f98794a8911b5e8b958c2d4464c1a19
MD5 894a128673161c30bf3bf61006af3b0f
BLAKE2b-256 0ed8f3c1f2a6382b409d65b572033b17ca65926ddcd67422eeb813c9b58528f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp311-cp311-win_amd64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 68fb8e2273fb74b8bf37471e5c578718f98292a3df2605e09b13517d8f377b0d
MD5 8afaf7b90c13aaa8f7f1b40d3b954542
BLAKE2b-256 5c233f1b918d4f63c46e3521bbbc0b32b4b65d362c84276b2a728562b72cc4f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 428a25962490274c439cf7a83107387ba4ab27b1b2f495389ed75dfe527536d6
MD5 4ff711b45d6a76174fddaa224cbe69bd
BLAKE2b-256 0566068293911462cf7dc8838ab296d7c996f08bee743b819006dbbea1484752

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21577b1dbcf85328764f6c4f0176e4bcd1f7de047ec64028f9827239b3a34778
MD5 8af6c08b8568f8efef1cf9fe8f010cbc
BLAKE2b-256 cceb3f376fb8dfbce8bcd8a0f72189c92bfbdd738a32bab587a07d5be8c6295f

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on flh-raouf/codarascan

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

File details

Details for the file codarascan-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for codarascan-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dbdbb4ea8a27e9c0fbc819838cba660b1297f27e2d5e44095ca31619cc389f10
MD5 7c80aaf0fd7f0c38c16cde68553ac45e
BLAKE2b-256 5c1ba855b4f0ae2c2201bf7db6fa9288a3d75d6902d1d75f7f78ff8c1135917c

See more details on using hashes here.

Provenance

The following attestation bundles were made for codarascan-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release.yml on flh-raouf/codarascan

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 Sentry Error logging StatusPage Status page