normalizer-or
Odia text, ready for speech.
A Rust engine with a typed Python API for Odia speech normalization and written-text cleanup.
Author: Sambit Sekhar
Quick start · Examples · Python API · Formats · Publishing
ଆଜି ୨୫ kg ଚାଉଳ। → ଆଜି ପଚିଶ କିଲୋଗ୍ରାମ ଚାଉଳ।
₹25.50 → ପଚିଶ ଟଙ୍କା ପଚାଶ ପଇସା
Runs offline with no speech model, API key, network service, or runtime Python dependencies.
What it does
| Operation | Purpose | Example |
|---|---|---|
normalize |
Expand supported notation into Odia speech text | ୨୫ kg → ପଚିଶ କିଲୋଗ୍ରାମ |
clean |
Apply NFC and optional digit/whitespace conversion | 123 → ୧୨୩ with digits="odia" |
- Odia and ASCII digits: mixed digits, Indian/international grouping, lakh/crore scales, signs and exact decimals.
- Everyday notation: INR/paise, percentages, ten unit labels, Gregorian dates and 24-hour clocks.
- Inspectable results: completeness, source segments, issues and fallback assumptions with original UTF-8 byte offsets.
- Bounded execution: input/output limits, cooperative cancellation and deadlines; reuse one normalizer across threads.
English prose and names stay as written. URLs, email addresses and opaque identifiers are protected from partial numeric expansion. Coverage and spellings are alpha defaults pending native-speaker/audio review; passing tests do not establish speech quality.
Quick start
Install
After the first successful PyPI release:
pip install normalizer-or
# Or use uv in your virtual environment:
uv pip install normalizer-or
# Or add it to a uv-managed project:
uv add normalizer-or
PyPI publication requires the one-time publisher setup. The PyPI version badge populates after the first upload. Until then, install from GitHub with Git and Rust available:
python -m pip install "git+https://github.com/OliveSuite-AI/normalizer-or.git#subdirectory=bindings/python"
# Or:
uv pip install "git+https://github.com/OliveSuite-AI/normalizer-or.git#subdirectory=bindings/python"
Compatible release wheels need no Rust compiler. Source builds require Rust.
Supported interpreters are CPython 3.11–3.14. From a local checkout, use
python -m pip install ./bindings/python.
Normalize and clean
from normalizer_or import Normalizer
n = Normalizer()
spoken = n.normalize("ଆଜି ୨୫ kg ଚାଉଳ।")
assert spoken.normalized_text == "ଆଜି ପଚିଶ କିଲୋଗ୍ରାମ ଚାଉଳ।"
assert spoken.complete
written = n.clean(" ଓଡ଼ିଆ 123\n", digits="odia", whitespace="collapse")
assert written.normalized_text == " ଓଡ଼ିଆ ୧୨୩ "
Choose how to handle unresolved text
| Policy | Result |
|---|---|
preserve — default |
Retain unresolved source; return complete=False and issues |
reject |
Raise NormalizationError with diagnostics |
fallback |
Read the source literally; record assumptions in fallbacks |
result = n.normalize("29/02/2025", ambiguity_policy="preserve")
assert not result.complete
assert result.normalized_text == "29/02/2025"
print(result.issues)
Fallback does not repair dates or certify identifiers. Hint and diagnostic ranges count original UTF-8 bytes, not Python characters. Cleanup is a separate call; speech normalization never silently rewrites the input first.
Examples
| Input | Speech output |
|---|---|
1୨3 |
ଏକ ଶହ ତେଇଶ |
1,00,000 |
ଏକ ଲକ୍ଷ |
1,00,00,000 |
ଏକ କୋଟି |
₹25.50 |
ପଚିଶ ଟଙ୍କା ପଚାଶ ପଇସା |
12.5% |
ବାର ଦଶମିକ ପାଞ୍ଚ ପ୍ରତିଶତ |
09:30 |
ନଅ ଘଣ୍ଟା ତିରିଶ ମିନିଟ |
Try the Colab notebook in a fresh CPU runtime, or run all seven self-checking Python scripts:
python bindings/python/examples/run_all.py
Examples cover speech, cleanup, all three policies, all four hint kinds, UTF-8 source inspection, JSON, errors, cancellation, threaded batches and JSONL files.
Rust
Use a local path dependency until the Rust crate is published:
[dependencies]
normalizer-or = { path = "/path/to/normalizer-or" }
use normalizer_or::{NormalizeError, NormalizeOptions, Normalizer};
fn main() -> Result<(), NormalizeError> {
let n = Normalizer::new()?;
let result = n.normalize("୨୫ INR", &NormalizeOptions::default())?;
assert_eq!(result.normalized_text(), "ପଚିଶ ଟଙ୍କା");
Ok(())
}
Tests and releases
CI checks the Rust core, minimum Rust version, Python bindings and independent Rust/Python conformance records. Scheduled robustness jobs exercise additional seeds and long inputs. The testing guide explains replaying failures.
A merged PR to main is published after its CI passes. Release automation
allocates a new patch version, builds and tests 16 wheels plus an sdist, validates
metadata, and uploads through PyPI Trusted Publishing. Manual build-only and
TestPyPI runs are available. See release setup and versioning.
Documentation
| Guide | Contents |
|---|---|
| Python API | Results, hints, controls and errors |
| Normalization contract | Formats, boundaries, policies and limits |
| Runnable examples | Scripts and Colab notebook |
| Publishing | PyPI setup, automatic versions and release recovery |
| Development | Build and verification commands |
| Robustness | Oracles, properties and cross-language checks |
| Performance | Measurement guidance |
| Provenance | Vocabulary and review status |
Licensed under Apache-2.0. Required source and dependency credits remain in third-party notices.
Metadata
Release files for normalizer-or 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| normalizer_or-0.1.0.tar.gz | 363.1 kB | With provenance | Details for normalizer_or-0.1.0.tar.gz |
Built distributions (wheels)
Total release size: 10.1 MB
Release files / normalizer_or-0.1.0.tar.gz
| Download URL | normalizer_or-0.1.0.tar.gz |
|---|---|
| Size | 363.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c07c0258912c3adaef755f4ac238af87ac190efa23c04423885938fdd367b749
|
|
BLAKE2b-256 checksum How to use checksums |
fd345d47dd06339895c585220ae2babf2c5cf0bd8e5991bd65ba5c2425b600bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp314-cp314-win_amd64.whl
| Download URL | normalizer_or-0.1.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 529.5 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c8ff776dc81e2b5d25aee9ad7af2ba7e8fbca7b6fc5c5b820b585a1a80f4f886
|
|
BLAKE2b-256 checksum How to use checksums |
22bca2a7ed774bb50c7a21f535e82f89945586db67d86fec7f9145e1715d9af7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | normalizer_or-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 638.7 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
a4d0d5663ca5784cff864a43dd673825fef9b9269df8b7f879039a1efe2c92cf
|
|
BLAKE2b-256 checksum How to use checksums |
253297f1a3ffaceb1c61f3bc6d8b46ae5467e7d6ae74c6d77c08d1aa4e17f359
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | normalizer_or-0.1.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 632.5 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
046ccfedfd493613f0e3a126a1152a15d8fcd4e297c9dfd6d569f991676ea460
|
|
BLAKE2b-256 checksum How to use checksums |
6972081d1a74cc5283987de5b6e8c402baaf0d3b5897e07ca23bbfec360c90c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | normalizer_or-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 638.0 kB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
c640f12e4370e617ca83f82b2f80a5761e01d87965c8499cf9d7962c89d5b826
|
|
BLAKE2b-256 checksum How to use checksums |
2d849aaa9b84308275b50f0da619519d9950375f5bdd36e3f680e704665bf7c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp313-cp313-win_amd64.whl
| Download URL | normalizer_or-0.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 529.2 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
39f813dbeb3f356fa67b1f603f129d787e07c5594373366b8c7704788c99b48a
|
|
BLAKE2b-256 checksum How to use checksums |
806aedbf06dd7fe79e3fec37c3af20ebbd807b957d0754da17bd992c0c4032e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | normalizer_or-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 638.0 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b80094f72dcd5635f21d47d51036e56d01755c7d942e1e179a86d2b5509d5737
|
|
BLAKE2b-256 checksum How to use checksums |
e5f6370f5c51612b7cb80681ed3e3eb33c311a22c89387e4447a1d98ee5c4507
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | normalizer_or-0.1.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 632.1 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7cc21e807e9f01f566b32bdfc5ee264f0a7bf2791f5c5b22950261613d234285
|
|
BLAKE2b-256 checksum How to use checksums |
fe28d2538f704c3bb039b9b6ae54c6bd6516ea5e2c853eed580d7d6dff39577e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | normalizer_or-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 636.8 kB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
c2393ecc0ef233ae1d4ce205b93aabe5be39c36662f34a0e9cefbd0d774f43c7
|
|
BLAKE2b-256 checksum How to use checksums |
43175dababcd134029e70173c374990a65f7592fd29066e9607057049aa8cefd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp312-cp312-win_amd64.whl
| Download URL | normalizer_or-0.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 528.7 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6926ca86dddb791c7cde873b8ab886174ecdd20e869f615b445395762ec284ee
|
|
BLAKE2b-256 checksum How to use checksums |
0f500195baf5afcf5d60ca281a6f760a655caeff356ff6f128f16847bf685ff0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | normalizer_or-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 637.9 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
fb3c7ecc8272fe4c3c0480e5b1126499c6d09e49cfdf98252e6d15c8aa88b2bc
|
|
BLAKE2b-256 checksum How to use checksums |
f263a88b95e9d9c870c4d46e9cb4f6c0bf3e9d5cd7adb7469b49cf23ab0ebb1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | normalizer_or-0.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 631.9 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
54ed94139c938a0ff3e4b3a38278c97aec07cdf955fba0f9233b5bca106f5bfb
|
|
BLAKE2b-256 checksum How to use checksums |
0d527ae5a7b1ec814d5a3e7cc9d3ab58e2e389e6ee9a4943e214cbed101e7ceb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | normalizer_or-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 636.5 kB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
79e89566738740d24d94ac7b045b04e23d5673fe19683b5cf62351138fae7a36
|
|
BLAKE2b-256 checksum How to use checksums |
95d4b79c4f21eb790990516a8905803276afc68c5fa70f26e9dcb0ff3db75879
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp311-cp311-win_amd64.whl
| Download URL | normalizer_or-0.1.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 531.4 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f36efb9e7ed9f3987229b244dd61b9c919f0db16dd214c00ec0bc9e8aa517cc2
|
|
BLAKE2b-256 checksum How to use checksums |
010bdd27b1f2e72b9984f9223e3d48f25e0d68470aac47c4428b9893af7beebe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | normalizer_or-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 641.7 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f8ea44eb7be21ef5cc2f73ceb28276b6ea9842bf0b3e849d7ed33a587d6ff244
|
|
BLAKE2b-256 checksum How to use checksums |
2b9555cad83a1b7a649539e1ac5d042aaae92ec9803c21230854f3c8fe56e4f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | normalizer_or-0.1.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 638.4 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2216e6cb39583e14529cc4fecb78d959bc51a118940a64142c7bdaea082a0fbd
|
|
BLAKE2b-256 checksum How to use checksums |
a26cd44de6f2d6eb4e589dfea3c86501c58a2e04186b9b45d54934299e47fc9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / normalizer_or-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | normalizer_or-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 636.7 kB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
676c9ff76a2f35fea81ffad81feb18ca922c6a4624f4e43be6a2bf52a27290be
|
|
BLAKE2b-256 checksum How to use checksums |
2a869bf8ade893b6d4310b1a9b1f19a6d0f1086b037b6726fdf8f6d26ca8772f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logSecurity for normalizer-or 0.1.0
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.
Full provenance
All 17 files in this release have been uploaded with provenance metadata.
Attestation for normalizer_or-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logA 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.