normalize-uk-cpp
C++23 Ukrainian text normalization and tokenization utilities with optional Python 3.10+ bindings.
CMake
cmake -S . -B build
cmake --build build
ctest --test-dir build
Enable Python bindings explicitly when building with CMake:
cmake -S . -B build-python -DNORMALIZE_UK_CPP_BUILD_PYTHON=ON
cmake --build build-python
A regular CMake install includes the C++ library, headers, and CMake package. Python wheels contain only the Python package and compiled extension.
Python
python -m pip install .
import normalize_uk as nuk
print(nuk.number_to_words(123))
print(nuk.normalize_ukrainian("01.05.2024"))
print(nuk.normalize_ukrainian("01.05.2024", preset=nuk.NormalizePreset.TtsFriendly))
print(nuk.normalize_ukrainian_many(["01.05.2024", "5 кг"]))
print([sentence.text for sentence in nuk.split_sentences("П'ять зв'язків. Два.")])
print([token.text for token in nuk.tokenize("П'ять зв'язків.")])
More examples live in examples/python/.
Tags matching the version in pyproject.toml (for example, v0.4.2) trigger
wheel builds for supported Python versions. The workflow uploads the wheels to
GitHub Release Assets, then downloads those Assets and publishes them to PyPI.
To enable PyPI Trusted Publishing, register ThirdLetterC/normalize_uk-cpp as
a publisher for normalize-uk with workflow release.yml and environment
pypi. For a new PyPI project, register a
pending publisher
first. No PyPI API token is needed.
NormalizeOptions accepts a preset and named overrides at construction time:
options = nuk.NormalizeOptions(
preset=nuk.NormalizePreset.TtsFriendly,
range_style=nuk.RangeStyle.Compact,
numeric_date_order=nuk.NumericDateOrder.DayMonthYear,
)
result = nuk.normalize_ukrainian("5–7 кг", options=options)
spans = nuk.flag_uncertain("10:30, $12", options=options)
Pass either options= or preset= to normalize_ukrainian and flag_uncertain.
normalize_ukrainian_many() accepts any iterable of Python strings and applies one
options snapshot to the entire batch. It returns a list in input order and raises
TypeError if an item is not a string. It accepts the same options= and preset=
selection as normalize_ukrainian. Identical strings within one batch are
normalized once and their result is reused.
The older positional options/preset calls and normalize_ukrainian_with_preset() remain available.
Without options, flag_uncertain() reports all ambiguity candidates. With explicit options
or a preset, it omits warnings for ambiguous dates, colon pairs, and currency symbols
when the selected policy resolves them; invalid-value diagnostics remain.
Substring.start/stop and UncertainSpan.start/stop are Python str indexes,
with stop exclusive: span.text == source[span.start:span.stop]. They count Unicode
code points, matching Python slicing, rather than UTF-8 bytes.
number_to_words(), number_to_ordinal_words(), and number_to_words_case() accept
integers from 0 through 999999999999999999. Values outside that range raise
ValueError; non-integers raise TypeError. number_to_words_digit_by_digit() accepts
a nonempty string of ASCII digits only and preserves leading zeroes. Its invalid input
raises ValueError. Ordinal forms are nom_m, nom_n, nom_f, nom_pl, gen, dat,
prep, loc, pl, loc_pl, acc_f, gen_f, ins, ins_f, ins_pl, and loc_f.
Cardinal cases are gen, dat, instr, and prep. Unknown forms raise ValueError.
The legacy spellings sentenize(), cyrilize(), and cyrrilize() remain available
but issue DeprecationWarning; use split_sentences() and
transliterate_to_cyrillic() in new code.
NormalizeOptions, Substring, and UncertainSpan support copy.copy(),
copy.deepcopy(), and pickle serialization. Copies are independent value objects.
Currency and cryptocurrency coverage
Normalization covers all 178 active ISO 4217 List One codes, including their
0-, 2-, 3-, or 4-digit minor-unit rules. More than 70 common cryptocurrency and
finance tickers have natural Ukrainian readings. Other 2–10 character uppercase
alphanumeric tickers are spelled out after amounts and when paired with a known
asset, so newly introduced assets do not require an immediate library release.
Prefix and suffix
amounts, localized thousands separators, signs, decimals, and the ₿ symbol
are supported.
Ambiguity controls
NormalizeOptions keeps backward-compatible defaults while allowing callers to resolve ambiguous input explicitly:
colon_style: contextual clock/ratio detection, forced clock, or forced ratio.numeric_date_order: day-month-year, month-day-year, or preservation of dates where both fields are at most 12.currency_symbol_policy: assume the common currency for$and¥, or preserve those ambiguous symbols.
The CLI exposes the same controls through --colon-style, --date-order, and
--preserve-ambiguous-currency.
Benchmarks and fuzzing
Build and run the benchmark explicitly:
cmake --build build --target uktextnorm_benchmark
./build/uktextnorm_benchmark .
For Python binding timings, install the package and run
python benchmarks/python_binding_benchmark.py. It compares scalar and batched
normalization, including unique inputs, and span-returning calls.
With Clang and libFuzzer support, build the normalization harness with sanitizers:
cmake -S . -B build-fuzz -DCMAKE_CXX_COMPILER=clang++ -DNORMALIZE_UK_CPP_BUILD_FUZZER=ON
cmake --build build-fuzz --target uktextnorm_fuzzer
./build-fuzz/uktextnorm_fuzzer -max_total_time=60 tests/data
Development
Install uv and just for development. Run just to see all recipes. just format applies Ruff fixes and Python formatting; just lint runs the Python static checks; just check also runs Python and C++ tests.
just setup
just format
just lint
just check
just wheel 3.15
The project includes a .clang-format file and a CMake formatting target. Install clang-format, then run:
cmake --build build --target format
Release files for normalize-uk 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 18.0 MB
Release files / normalize_uk-0.4.2-cp315-cp315-win_amd64.whl
| Download URL | normalize_uk-0.4.2-cp315-cp315-win_amd64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.15 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
02b524528724a53b412698db75b597c89a30e82892edb51a3657e6260a89d302
|
|
BLAKE2b-256 checksum How to use checksums |
8b970362a5143a3761f174c9f1947b0bd15dffc2d90b04abb0724e5a35fc884c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | normalize_uk-0.4.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.15 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
e7d112de161da7cd221e6fd4416d6cf071bd9b8423f1ee7e81a116a840c4a7f7
|
|
BLAKE2b-256 checksum How to use checksums |
1d476f84bdf6ae340fb8cbf458f7eb1deeeeb68e1c503d31f4c755da6b8e6802
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp315-cp315-macosx_11_0_arm64.whl
| Download URL | normalize_uk-0.4.2-cp315-cp315-macosx_11_0_arm64.whl |
|---|---|
| Size | 832.1 kB |
| Tags | CPython 3.15 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
83aacbec0f9ab0daee70421c26ddef825937d45b7e6e3c6a4288882cfb6cfd57
|
|
BLAKE2b-256 checksum How to use checksums |
9abe7fa40ac7708cc0fe739e7071c090ee92e4a1c3c8ea5452148e2c0853b74d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp314-cp314-win_amd64.whl
| Download URL | normalize_uk-0.4.2-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
22eef0dcdf15b04e75abdc36e42f3d236f4e3dba0c0a65c3df6d18a881e96c67
|
|
BLAKE2b-256 checksum How to use checksums |
53e455c38e3d6d8816985b3a6fb937071a65778600cfbbca67be512cc4062c67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | normalize_uk-0.4.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
7ddbd200ae69b342bb5aba4eeda720b18a100e8cb05b125359f96e026b4d91e3
|
|
BLAKE2b-256 checksum How to use checksums |
a489c949f829be1c8c3b15653389cae9c88d3ba07f1871d52b6d568cbe2c1093
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | normalize_uk-0.4.2-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 832.1 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
80337227be6d16fb72afa1b83bcfb72df10ba2be7e1d41b10b64024c872ec091
|
|
BLAKE2b-256 checksum How to use checksums |
692d37bfcfd479a3e7a579d42db7403e5d0fff24f839ae64de3100b11dcb2176
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp313-cp313-win_amd64.whl
| Download URL | normalize_uk-0.4.2-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
59ef0c24f517456dc28e522e8c4cecfd474e89c4232a884bd292131be508b023
|
|
BLAKE2b-256 checksum How to use checksums |
9a5a3aa00f9b452ced3451e93d7adc2152cfca3423a12ff4cf17290e6992b991
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | normalize_uk-0.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5ce9f8e5e6f9b146c977089bed227e4739c297e4188f5e6400914d91e93222eb
|
|
BLAKE2b-256 checksum How to use checksums |
36430e3ac829503b3fc35f241eb900a00a01dac970d96d5ff8e9acea1196bbf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | normalize_uk-0.4.2-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 831.7 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
755892066017d55db4cff674b2b8bf3bec88ccdaaac72d58403eacbbcfce23df
|
|
BLAKE2b-256 checksum How to use checksums |
ac0ed895e7aaae1a5ab73c4ac0d3f4c6be838c33dd0a59c19ced286c836ea66b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp312-cp312-win_amd64.whl
| Download URL | normalize_uk-0.4.2-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bf19c7636af9d6d85a0fc1c6634ca231969b323ff6ff83bf4b1897b0b45e099f
|
|
BLAKE2b-256 checksum How to use checksums |
7c7efd676c41f5de7a5d69bf716e07f613a7cdf242819baa3c1f6fcd8b1605c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | normalize_uk-0.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1be6a26b9aac0337c3a101db555c381982b68acca9cc95236086167bed2d98b4
|
|
BLAKE2b-256 checksum How to use checksums |
59fda26e8bc821d08778527957958876014bf6293ddb85be517aba153045c408
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | normalize_uk-0.4.2-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 831.6 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
75533ddfdade0c9133e7434ab5158df2291ac716cd53fdb9a58eba49b26d5d84
|
|
BLAKE2b-256 checksum How to use checksums |
265b0aa7967b3b134e5bab22a31e65452d2118a19d87a62beca7797f12e0f330
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp311-cp311-win_amd64.whl
| Download URL | normalize_uk-0.4.2-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
aa3bcf6051d7cbb2cc576f7417e95a4ce67ab768e6d1b51ca72c46fb971345ff
|
|
BLAKE2b-256 checksum How to use checksums |
c0020ca3e596d646c51bb3dd6f67597dee2e8876c920176feae183b8cbdfffbd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | normalize_uk-0.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1c1be73ebe1c10d1746622e062dee2631ae599da59756c9ba36ae481a8856806
|
|
BLAKE2b-256 checksum How to use checksums |
e1d4cd3a96ecccafbe4ea9e372325418a2ced00c412870c0cdb65b5c7f36d023
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | normalize_uk-0.4.2-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 830.7 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c19ff0941efed8dc69f3046d6a740e59155531affacfb0228a00d116f9f069c2
|
|
BLAKE2b-256 checksum How to use checksums |
b65e07a3d7c87a87051835d54188ee8f17401468a9131c7ad37bbc82ba1e2e98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp310-cp310-win_amd64.whl
| Download URL | normalize_uk-0.4.2-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4f79e38e59c111be4e15a8c7a3cd9f2fe3fd8caf3bb6f728d641207356023491
|
|
BLAKE2b-256 checksum How to use checksums |
e7c9be23721d9811ecbd46e517dcb3574cd9416cd61ff72915164d88e4f7a7ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | normalize_uk-0.4.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a941bec5dd7e2e20076ae756e00f88547f0f73c71e85bc671c14a51b34187471
|
|
BLAKE2b-256 checksum How to use checksums |
7f9c5dacac9f77cfb956560414371a44f08a1ec2e674a2ec1a8108eb7b34344e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency logRelease files / normalize_uk-0.4.2-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | normalize_uk-0.4.2-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 828.9 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e6ac3a06b143d2640a0b204fe2b76ad12f4a95983de3ebec43324f474f9fb67a
|
|
BLAKE2b-256 checksum How to use checksums |
08768789395a0d9ab7e0d53eccdd8038d803991afd162bfdcd1a5ffbc5d66532
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 15, 2026.
Transparency log