Skip to main content

cnrocr

PyPI Python Downloads Platform License

Container number detection and recognition — ISO 6346 end-to-end, ONNX only.

A region detector locates the number, ISO type code, owner code and serial on the container; an OCR recognizer reads each crop with a spec-constrained beam search. Fragments split across panels are merged back into a single number and validated against the ISO 6346 check digit.

No PyTorch required. The runtime is onnxruntime + numpy + pillow.


Install

pip install cnrocr             # CPU
pip install "cnrocr[gpu]"      # NVIDIA CUDA via onnxruntime-gpu
pip install "cnrocr[server]"   # local REST API + dashboard

Model weights (~113 MB) are not bundled in the wheel. They are downloaded on first use and cached locally:

cnrocr models download       # optional — happens automatically otherwise

Python API

from cnrocr import ContainerOCR

ocr = ContainerOCR()                      # weights resolved from cache
result = ocr.read("gate_cam.jpg")

for c in result.containers:
    print(c.number, c.iso_type, c.confidence, c.needs_review)
# TGHU8913889 22G1 0.9997 False

Multiple images

results = ocr.read_many(["a.jpg", "b.jpg", "c.jpg"], batch_size=8)

read_many treats the images as unrelated — N images in, N results out.

Multi-view fusion

When several cameras photograph the same container, fuse them into one answer instead of voting on strings:

mv = ocr.read_multiview(["cam1.jpg", "cam2.jpg", "cam3.jpg"])
print(mv.number, mv.agreement, mv.mode)

Beam-search candidates from every view are summed in log space, so a character that one view is unsure about can be settled by the others. If the views appear to be looking at different containers, they are not fused — mv.consensus becomes False rather than producing a confident wrong answer.

Review triage

A check digit alone is not enough. The constrained decoder only emits spec-conforming candidates, so when the true string is absent from the beam it will confidently output a plausible wrong number that still passes the check digit. needs_review combines the check digit, the spec flag and a confidence floor:

if c.needs_review:
    print(c.review_reason)     # "low confidence (0.612 < 0.7)"

Owner code registry (optional)

Real-world owner codes are registered with the BIC. Supplying the list filters out invented codes that would otherwise pass both the format check and the check digit:

from cnrocr import OwnerCodeRegistry
ocr = ContainerOCR(registry=OwnerCodeRegistry.from_file("bic_codes.txt"))

The list is not shipped with this package.


Command line

cnrocr read gate_cam.jpg
cnrocr read *.jpg --json --device cuda
cnrocr multiview cam1.jpg cam2.jpg cam3.jpg
cnrocr models status
cnrocr check                    # diagnose install, providers, cache

--fail-on-review makes the process exit with code 2 when any result needs human review, which is convenient in batch pipelines.


Local server

A REST API and a browser dashboard, both served from your own machine. Images never leave it.

pip install "cnrocr[server]"
cnrocr server start                  # http://127.0.0.1:8000
cnrocr server start --daemon         # background; `server stop` to end it

Open the address for the dashboard, or /docs for the interactive API. The models are loaded once at startup and shared by every request.

curl -X POST -F "file=@gate_cam.jpg" http://127.0.0.1:8000/api/read
{
  "detection_id": 41,
  "device": "cuda",
  "containers": [{"number": "TGHU8913889", "iso_type": "22G1",
                  "confidence": 0.9997, "needs_review": false}],
  "elapsed_ms": 38.4
}
Endpoint Purpose
POST /api/read One image (multipart). /api/read/base64, /api/read/binary take other shapes
POST /api/read/batch Several images in one call
POST /api/multiview Several views of the same container, fused into one answer
GET /api/review The queue of results a human should look at
POST /api/review/{id} Record the human's verdict; corrections are check-digit validated
GET /api/history Past detections, with filters and CSV/JSON export
GET /api/health Liveness, version, and which device is actually in use
GET /api/stats Counts, review rate, remaining quota

Review queue

Results below --review-confidence (default 0.7) are flagged and collected for a human instead of being silently trusted. In practice that is a small fraction of traffic — on our validation set every misread scored below 0.7 while correct reads sat near 1.0, so the threshold catches the errors and sends only a few percent of good reads along with them.

The dashboard shows each flagged result next to its photo, with the number in an editable field. Confirming stores the corrected value, which is the only record of which misreadings repeat.

Access from a phone

The dashboard is built for a phone first: the camera button photographs a container and uploads it directly, which is enough to work the queue at the gate.

cnrocr server start --host 0.0.0.0 --token "$(python -c 'import secrets;print(secrets.token_urlsafe(24))')"

Binding to 0.0.0.0 exposes the server to everyone who can reach the host, so set a token when you do. The server says so at startup if you forget; it does not refuse to start, because a closed network is a legitimate setup.

Configuration

Flags, a YAML file, or the environment — later wins, and flags win over all.

cnrocr server start --config server.yaml --port 9000 --device cuda
server:
  host: 127.0.0.1
  port: 8000
  api_token: ""            # required in practice once host is not loopback
models:
  device: auto             # auto | cpu | cuda
  workers: 4
  review_confidence: 0.7
storage:
  save_images: true        # the review screen needs the photo
  max_history: 5000

Every setting also reads from CNROCR_SERVER_<NAME>. An unknown key in the YAML is an error rather than a silent no-op — a typo in api_token must not quietly leave authentication off.

cnrocr server status        # is it up, on what device, since when
cnrocr server list          # every instance this machine knows about
cnrocr server logs -f       # follow
cnrocr server read img.jpg  # send a file to a running instance
cnrocr server stop

Evaluation limit

Without a licence, cnrocr processes 30 images per day. The counter is per image, not per call, and resets at 00:00 UTC. It is shared by the library, the CLI and the server — they all draw on the same daily budget.

cnrocr license      # licence status and today's usage

When the quota runs out the process exits with code 3 and prints how to ask for a licence. Nothing is processed on a call that would exceed the quota — it is all or nothing, so a refused call costs no quota.

To request an unrestricted licence, email vislab2026@gmail.com with your name, organisation and intended use. You will receive a key:

# Windows
setx CNROCR_LICENSE "eyJlbWFpbCI6..."

# macOS / Linux
export CNROCR_LICENSE='eyJlbWFpbCI6...'

The key may also be saved to a file named license in the cache directory (cnrocr models path shows where). Verify with cnrocr check.


Weights and caching

Platform Location
Cache (Windows) %LOCALAPPDATA%\cnrocr\Cache\models\<set>
Cache (macOS) ~/Library/Caches/cnrocr/models/<set>
Cache (Linux) ~/.cache/cnrocr/models/<set>

Every file is verified against a SHA-256 recorded in the wheel. Released assets are immutable: a new model set ships under a new tag and a new library version, so upgrading never invalidates an existing install.

The weights are encrypted and are decrypted into memory when a session is built. The cache holds ciphertext only; no plaintext model is written to disk.

Environment overrides:

Variable Effect
CNROCR_MODEL_DIR Use this directory as-is; never download
CNROCR_CACHE_DIR Relocate the cache root
CNROCR_WEIGHTS_BASE_URL Fetch weights from somewhere else (file:// works)

License

Proprietary. Evaluation and non-commercial research use only — see LICENSE. Contact the copyright holder for commercial licensing.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

cnrocr-0.4.0-cp313-cp313-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86-64

cnrocr-0.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

cnrocr-0.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (8.7 MB view details)

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

cnrocr-0.4.0-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cnrocr-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

cnrocr-0.4.0-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

cnrocr-0.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

cnrocr-0.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (8.9 MB view details)

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

cnrocr-0.4.0-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cnrocr-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

cnrocr-0.4.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

cnrocr-0.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

cnrocr-0.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (8.9 MB view details)

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

cnrocr-0.4.0-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cnrocr-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

cnrocr-0.4.0-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

cnrocr-0.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cnrocr-0.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (8.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cnrocr-0.4.0-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cnrocr-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file cnrocr-0.4.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cnrocr-0.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.13

File hashes

Hashes for cnrocr-0.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 25937949e64e9e9aebcedd80f2f3e91d5e8817d4bf81bd3b76131a0fca5d715a
MD5 4282b17f242cb1ca5d8e47f37c526887
BLAKE2b-256 e1b147dc71f91f36d559d00e0fadc91665bfb7d391cd8f62c00db35a547d5b36

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4e2bc3066a9799b4afd868104bbd4688cb7fb6ce0b0c0c51c3ba0a87834230e1
MD5 13ebbb113704348d4fdc249de4020186
BLAKE2b-256 fc40165310ffc8a457503ab01ec4baac892b8af54e2ab0ccc4ccd5ae422f6dce

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f366d18780186f87bfc4e2dc849bb21f748885dac920735cc15e0ab4d6ac4bd2
MD5 56359dcec897bd35afb0b962cde21213
BLAKE2b-256 b89a94a9b086e82cbf1a935aec5b3174e5e781d21d053a184396372254adfb11

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16d04f54077bbccb18ae3e34f48c807f8c6fd41e970479ddd3ffe86414c904d4
MD5 8fb6e18f935da1ddf3393c1a2987d2d0
BLAKE2b-256 a22beefce74620a39a2ae21b342f0a05efb77506487c49b6d9b0e1f2e99e4613

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 79f626f0724321e43733f96ab88b2aa6074c1c05d5512e2af6deb7f12acaa2fa
MD5 275bfb1bfbf5c44e73a00fcfb18cdc8e
BLAKE2b-256 2031ff1f5fd293e9500c3eb1884d0b84a0c1d4f796d6a25ad4833c31b043fa5c

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cnrocr-0.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.13

File hashes

Hashes for cnrocr-0.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cba1536ef7c50b341c5a72af2ea7f3cdebbd6440f74f894a02cd17d51e852f60
MD5 d2b66f00bb2ebfe2131360438da85b95
BLAKE2b-256 1260b83c2dd3278d3fab5a7a7c9a9d330495a6ee0cb12a754abee363132f0bfd

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d905dea6910782c999a71cd6c5e7b5930ef0562acae89d378960ed2f1746e266
MD5 eda6bc9f635f2786270f3116a66f7737
BLAKE2b-256 cd63f217987c7b3d1b028b2438a97922c4b7ce3c3d1f99bf865396f7ba659c88

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 00db9392e7fe385fab2a964229f8016c45c27e38e641e5b6a2550aae206ac68a
MD5 0fc60b2ec650af4b3f5fd87e1ab19758
BLAKE2b-256 32eea81efe7f234f5cf0bfaeb94dbc77a158b5920b52fa2d3d3f59cdbb0e12e5

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2d868ade9d6e5d8237c316e3be75e67a43475cf9329f2f5f83441351c21fc6c9
MD5 bce84f1462711665df66105ee6441f5a
BLAKE2b-256 30843d72174ae964771c0997c441fe41f0f99ca840fdcac23e8ce93250f70ce9

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 77ddf606cab6765939e5004868eafdec385403e6a9f022afa1b5d1056a12773c
MD5 e3af5b4141d3a23a3048821a3433e1d3
BLAKE2b-256 cb0a5dc143f4bdfcbf4952e4016609807605369516a618a779b9ff9ccb99a3cf

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cnrocr-0.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.13

File hashes

Hashes for cnrocr-0.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 54ab515ada86741bbbe0c44f79259d1094f39b69892a58d1042eaedea1b0d223
MD5 0375fb2af4a896a15e389a9b4e92ab49
BLAKE2b-256 2989c575591d1136ad16f496e891b9040fd71f4d2cab4de6dbd0960a88037efd

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 45c22d3b15140a2846b0aea94552eca6515335f9983289e804ef0d8d1d09ae98
MD5 c9ee92f8fbd5cace8ce1240053a04505
BLAKE2b-256 05250058c564c71357525a2a2fa5d1a228fbe7d28e3dd4a57895e525e0d97b07

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fdc97937a0727a5e7ddcdad51e58410a86e65ff8c0b2b1f9739b0812430bc6dc
MD5 53243ad193ba93bcaf3acb5d159eac14
BLAKE2b-256 8a2c81ad59f9bb4033173701273a08087c45223acaadb5093b52825b8a6c57c2

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e596c4b4e7410b25a073c68411edd262cc081cf8e1b0bd519fbe148869325312
MD5 6f1da62435eced873d788a2d62b18d12
BLAKE2b-256 9338f6016e61521eb64ffcdc83558e3a9d57e1b220a26defaf52214ebf1ccea3

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aa71a325f6a9fbf4e2bc7acc12d4954c876603933f403369e363d5d9344da358
MD5 4476fd3968b236befbfedad0d66a176a
BLAKE2b-256 5d1b996d9bc5d35fdf99fdcc4e3ab18cfccc530d26bac7ffea7594a9f43a2ae8

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cnrocr-0.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.13

File hashes

Hashes for cnrocr-0.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9f784f0197dcf565a89da265b911714ab7e31f3d00c21d5cd813f010f3da1c87
MD5 b1cfd8cdee028e69932b542f57368f0e
BLAKE2b-256 3eee5129ef0f3721dee20d0f80bafb9b333003629b4ed06de47bc62b84fb9b88

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c9234f243a33d5d39c6b82a92c563f3387e9f89c92ef02e1068d66479094bb55
MD5 5298dedc03e51fa8c331be0c0db22985
BLAKE2b-256 6d9c20892e5747b1e8c3d40df9ce9811f1ab6147e33633aab367e0d0119b0e26

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f9708c7699121866795ecdc38ed590d4ab83b186e907181ab9f84540da52b398
MD5 7a988c92b20537f56147f7ebfea55af4
BLAKE2b-256 dedc071cee89a480b15d857fe0c11cc79b4c0554e3e99a93615153f52873378c

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ac6d58b0616e9944197e91a65bdf915c8f88ed1c8c1a05c4097fea04a28aa46
MD5 ff27d452e761452e507d854ea57f6ae1
BLAKE2b-256 a422cb75613f251e9aab02851dc75885048d2803f00f1f376532780c083b6ae1

See more details on using hashes here.

File details

Details for the file cnrocr-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cnrocr-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e24bb4cb33cdd69cfed20a82c5a089cefc8f3c465e85b12f5bcb18cf72eaa8c0
MD5 794e8fbd3d6b97a65a9ba0382da6e113
BLAKE2b-256 7f0f4b8fd96d88d52517365d208afe4f81a9b823157a9bde7e4554073fd5b8fa

See more details on using hashes here.

Release history Release notifications | RSS feed

0.6.11

20 files

0.6.10

1 file

0.6.9

1 file

0.6.8

1 file

0.6.7

20 files

0.6.6

20 files

0.6.5

20 files

0.6.4

20 files

0.6.3

20 files

0.6.2

20 files

0.6.1

20 files

0.6.0

20 files

0.5.10

20 files

0.5.9

20 files

0.5.8

20 files

0.5.7

20 files

0.5.6

20 files

0.5.5

20 files

0.5.4

20 files

0.5.3

20 files

0.5.2

20 files

0.5.1

20 files

0.5.0

20 files

0.4.2

20 files

0.4.1

20 files

This release

0.4.0 This release

20 files

0.3.4

16 files

0.3.3

16 files

0.3.2

16 files

0.3.1

16 files

0.3.0

16 files

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