Skip to main content

A package for determining what version a Unicode codepoint was added to the standard

Project description

unicode_age

Build

A package for determining what version a Unicode codepoint was added to the standard

This package's version X.Y.Z tracks Unicode version X.Y, with Z reserved as a release counter for updates unrelated to the Unicode version.

Example usage

>>> import unicode_age
>>> codept = ord("\N{SNAKE}")  # added in Unicode 6.0
>>> print(unicode_age.version(codept))
(6, 0)

Rationale

Before writing this module, I was parsing DerivedAge.txt into a list[int | None], but this approach consumes an atrocious amount of memory (10 MB) for what it is. Using the representation here consumes three orders of magnitude less memory (~30 KB), and it was kinda fun to write besides :)

Updating

The script makeunicode_age.py consumes DerivedAge.txt and produces the header file that holds the backing data for this module and fills in the number of spans in the Cython template. To make a build for another version of the Unicode Character Database, you should be able to replace DerivedAge.txt and re-run this script.

Project details


Download files

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

Source Distribution

unicode_age-15.0.0.tar.gz (3.1 kB view hashes)

Uploaded Source

Built Distributions

unicode_age-15.0.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

unicode_age-15.0.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (22.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

unicode_age-15.0.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

unicode_age-15.0.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (22.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

unicode_age-15.0.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

unicode_age-15.0.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (22.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

unicode_age-15.0.0-cp311-cp311-musllinux_1_1_x86_64.whl (68.9 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

unicode_age-15.0.0-cp311-cp311-musllinux_1_1_i686.whl (67.4 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

unicode_age-15.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (66.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

unicode_age-15.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (64.2 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

unicode_age-15.0.0-cp310-cp310-musllinux_1_1_x86_64.whl (63.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

unicode_age-15.0.0-cp310-cp310-musllinux_1_1_i686.whl (62.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

unicode_age-15.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (61.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

unicode_age-15.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (59.7 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

unicode_age-15.0.0-cp39-cp39-musllinux_1_1_x86_64.whl (66.6 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

unicode_age-15.0.0-cp39-cp39-musllinux_1_1_i686.whl (64.8 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

unicode_age-15.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.0 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

unicode_age-15.0.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (62.5 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

unicode_age-15.0.0-cp38-cp38-musllinux_1_1_x86_64.whl (69.7 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

unicode_age-15.0.0-cp38-cp38-musllinux_1_1_i686.whl (67.6 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

unicode_age-15.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (65.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

unicode_age-15.0.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (63.2 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

unicode_age-15.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl (65.5 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

unicode_age-15.0.0-cp37-cp37m-musllinux_1_1_i686.whl (63.7 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

unicode_age-15.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (62.3 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

unicode_age-15.0.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (60.5 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

Supported by

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