unicodedata2 18.0.0


pip install unicodedata2

  Latest version

Released: Sep 18, 2026


Meta
Author: Mike Kaplinskiy
Requires Python: >=3.9

Classifiers

Githun CI Status PyPI

unicodedata2

unicodedata backport/updates. Currently supports Unicode 18.0.0.

Requires Python 3.9 or newer.

The versions of this package match Unicode versions, so unicodedata2==13.0.0 is data from Unicode 13.0.0.

Pre-compiled wheel packages are available on PyPI and can be installed via pip.

Testing

We run the tests using tox. This can be installed as usual with pip install tox, or with pip install --group dev (pip 25.1 or newer) to pick it up from pyproject.toml.

Tox and CI download the version-matched Unicode normalization data before running tests. Download failures stop the run. Before running pytest directly, run python tests/download_test_data.py once. The downloaded files are not included in source distributions or wheels.

Without any options, tox will run the tests against all of the library's target Python versions. Any missing versions will be skipped.

To run tests against a specific python version you can use the -e option followed by a tox environment name. E.g. -e py39 will run tests against Python 3.9. For more info, check tox's documentation.

Changelog

18.0.0

  • Upgrade to Unicode 18.0.0
  • Backport algorithmic character names from CPython, including Tangut, Jurchen, and Small Seal.
  • Backport CPython's faster canonical ordering, also fixing Unicode normalization on PyPy.
  • Require Python 3.9 or newer; drop Python 3.8 support.
  • Fix historical numeric values in the Unicode 3.2 database.
  • Make Hangul syllable lookup case-insensitive.
  • Return algorithmic Hangul syllable mappings from decomposition().
  • Always return an exact str from normalize(), including for str subclasses.

17.0.0

  • Upgrade to Unicode 17.0.0

16.0.0

  • Upgrade to Unicode 16.0.0

15.0.0

  • Upgrade to Unicode 15.0.0

14.0.0

  • Upgrade to Unicode 14.0.0

13.0.0-2

  • Fix issue with source distribution tarball archive missing CHANGELOG.md file.
  • Use tox as test runner.

13.0.0

  • Upgrade to Unicode 13.0.0

12.1.0

  • Upgrade to Unicode 12.1.0
  • Remove Python 3.4 support as multibuild no longer supports Python 3.4.

12.0.0

  • Upgrade to Unicode 12.0.0

11.0.0

  • Upgrade to Unicode 11.0.0
  • Remove Python 3.3 support as wheel no longer supports Python 3.3.

10.0.0-2

  • Wheel for Python 3.6

10.0.0

  • Upgrade to Unicode 10.0.0
  • Remove Python 2.6 support as wheel no longer supports Python 2.6.

9.0.0-4

  • Re-releasing 9.0.0-3 because PyPI doesn't handle bad internet connections well.

9.0.0-3

  • Add binary packages for all platforms. Patch by Cosimo Lupo (anthrotype).

9.0.0-2

  • Python 3 support
  • Fix incorrect digitification caused by using the underlying Python's Unicode tables.

9.0.0

  • Upgrade to Unicode 9.0.0

8.0.0

  • Upgrade to Unicode 8.0.0

7.0.0-2

  • Compiles under Python 2.6 (and older 2.7). Patch by John Vandenberg. Fixes #2
  • Runs regular unicodedata tests. Adds Travis and AppVeyor CI. Patch by John Vandenberg (jayvdb).

7.0.0

  • Initial release

Wheel compatibility matrix

Platform CPython 3.9 CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 CPython 3.14 CPython 3.15 CPython (additional flags: t) 3.14 CPython (additional flags: t) 3.15 PyPy 3.11 (pp73)
macosx_10_13_universal2
macosx_10_15_universal2
macosx_10_9_universal2
macosx_11_0_arm64
manylinux2014_aarch64
manylinux2014_x86_64
manylinux_2_17_aarch64
manylinux_2_17_x86_64
manylinux_2_28_aarch64
musllinux_1_2_aarch64
musllinux_1_2_x86_64
win32
win_amd64
win_arm64

Files in release

unicodedata2-18.0.0-cp310-cp310-macosx_10_9_universal2.whl (969.9KiB)
unicodedata2-18.0.0-cp310-cp310-macosx_11_0_arm64.whl (493.4KiB)
unicodedata2-18.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (529.1KiB)
unicodedata2-18.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (528.7KiB)
unicodedata2-18.0.0-cp310-cp310-musllinux_1_2_aarch64.whl (527.9KiB)
unicodedata2-18.0.0-cp310-cp310-musllinux_1_2_x86_64.whl (530.1KiB)
unicodedata2-18.0.0-cp310-cp310-win32.whl (481.5KiB)
unicodedata2-18.0.0-cp310-cp310-win_amd64.whl (481.8KiB)
unicodedata2-18.0.0-cp310-cp310-win_arm64.whl (483.4KiB)
unicodedata2-18.0.0-cp311-cp311-macosx_10_9_universal2.whl (970.0KiB)
unicodedata2-18.0.0-cp311-cp311-macosx_11_0_arm64.whl (493.5KiB)
unicodedata2-18.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (531.5KiB)
unicodedata2-18.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (530.9KiB)
unicodedata2-18.0.0-cp311-cp311-musllinux_1_2_aarch64.whl (530.2KiB)
unicodedata2-18.0.0-cp311-cp311-musllinux_1_2_x86_64.whl (532.3KiB)
unicodedata2-18.0.0-cp311-cp311-win32.whl (481.5KiB)
unicodedata2-18.0.0-cp311-cp311-win_amd64.whl (481.7KiB)
unicodedata2-18.0.0-cp311-cp311-win_arm64.whl (483.6KiB)
unicodedata2-18.0.0-cp312-cp312-macosx_10_13_universal2.whl (970.1KiB)
unicodedata2-18.0.0-cp312-cp312-macosx_11_0_arm64.whl (493.5KiB)
unicodedata2-18.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (532.0KiB)
unicodedata2-18.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (531.3KiB)
unicodedata2-18.0.0-cp312-cp312-musllinux_1_2_aarch64.whl (530.5KiB)
unicodedata2-18.0.0-cp312-cp312-musllinux_1_2_x86_64.whl (532.6KiB)
unicodedata2-18.0.0-cp312-cp312-win32.whl (481.6KiB)
unicodedata2-18.0.0-cp312-cp312-win_amd64.whl (481.8KiB)
unicodedata2-18.0.0-cp312-cp312-win_arm64.whl (483.6KiB)
unicodedata2-18.0.0-cp313-cp313-macosx_10_13_universal2.whl (970.1KiB)
unicodedata2-18.0.0-cp313-cp313-macosx_11_0_arm64.whl (493.5KiB)
unicodedata2-18.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (531.9KiB)
unicodedata2-18.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (531.3KiB)
unicodedata2-18.0.0-cp313-cp313-musllinux_1_2_aarch64.whl (530.6KiB)
unicodedata2-18.0.0-cp313-cp313-musllinux_1_2_x86_64.whl (532.6KiB)
unicodedata2-18.0.0-cp313-cp313-win32.whl (481.6KiB)
unicodedata2-18.0.0-cp313-cp313-win_amd64.whl (481.8KiB)
unicodedata2-18.0.0-cp313-cp313-win_arm64.whl (483.6KiB)
unicodedata2-18.0.0-cp314-cp314-macosx_10_15_universal2.whl (970.3KiB)
unicodedata2-18.0.0-cp314-cp314-macosx_11_0_arm64.whl (493.6KiB)
unicodedata2-18.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (531.9KiB)
unicodedata2-18.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (531.3KiB)
unicodedata2-18.0.0-cp314-cp314-musllinux_1_2_aarch64.whl (530.6KiB)
unicodedata2-18.0.0-cp314-cp314-musllinux_1_2_x86_64.whl (532.6KiB)
unicodedata2-18.0.0-cp314-cp314-win32.whl (572.9KiB)
unicodedata2-18.0.0-cp314-cp314-win_amd64.whl (572.7KiB)
unicodedata2-18.0.0-cp314-cp314-win_arm64.whl (573.4KiB)
unicodedata2-18.0.0-cp314-cp314t-macosx_10_15_universal2.whl (970.7KiB)
unicodedata2-18.0.0-cp314-cp314t-macosx_11_0_arm64.whl (493.7KiB)
unicodedata2-18.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (534.5KiB)
unicodedata2-18.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (533.1KiB)
unicodedata2-18.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl (532.9KiB)
unicodedata2-18.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl (534.3KiB)
unicodedata2-18.0.0-cp314-cp314t-win32.whl (573.0KiB)
unicodedata2-18.0.0-cp314-cp314t-win_amd64.whl (572.8KiB)
unicodedata2-18.0.0-cp314-cp314t-win_arm64.whl (573.6KiB)
unicodedata2-18.0.0-cp315-cp315-macosx_10_15_universal2.whl (970.4KiB)
unicodedata2-18.0.0-cp315-cp315-macosx_11_0_arm64.whl (493.6KiB)
unicodedata2-18.0.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (535.1KiB)
unicodedata2-18.0.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (532.0KiB)
unicodedata2-18.0.0-cp315-cp315-musllinux_1_2_aarch64.whl (533.6KiB)
unicodedata2-18.0.0-cp315-cp315-musllinux_1_2_x86_64.whl (533.1KiB)
unicodedata2-18.0.0-cp315-cp315-win32.whl (572.9KiB)
unicodedata2-18.0.0-cp315-cp315-win_amd64.whl (572.7KiB)
unicodedata2-18.0.0-cp315-cp315-win_arm64.whl (573.4KiB)
unicodedata2-18.0.0-cp315-cp315t-macosx_10_15_universal2.whl (970.7KiB)
unicodedata2-18.0.0-cp315-cp315t-macosx_11_0_arm64.whl (493.8KiB)
unicodedata2-18.0.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (537.5KiB)
unicodedata2-18.0.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (533.8KiB)
unicodedata2-18.0.0-cp315-cp315t-musllinux_1_2_aarch64.whl (535.7KiB)
unicodedata2-18.0.0-cp315-cp315t-musllinux_1_2_x86_64.whl (534.9KiB)
unicodedata2-18.0.0-cp315-cp315t-win32.whl (573.0KiB)
unicodedata2-18.0.0-cp315-cp315t-win_amd64.whl (572.8KiB)
unicodedata2-18.0.0-cp315-cp315t-win_arm64.whl (573.6KiB)
unicodedata2-18.0.0-cp39-cp39-macosx_10_9_universal2.whl (969.9KiB)
unicodedata2-18.0.0-cp39-cp39-macosx_11_0_arm64.whl (493.4KiB)
unicodedata2-18.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (529.0KiB)
unicodedata2-18.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (528.5KiB)
unicodedata2-18.0.0-cp39-cp39-musllinux_1_2_aarch64.whl (527.8KiB)
unicodedata2-18.0.0-cp39-cp39-musllinux_1_2_x86_64.whl (530.0KiB)
unicodedata2-18.0.0-cp39-cp39-win32.whl (481.5KiB)
unicodedata2-18.0.0-cp39-cp39-win_amd64.whl (481.8KiB)
unicodedata2-18.0.0-cp39-cp39-win_arm64.whl (483.4KiB)
unicodedata2-18.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl (492.3KiB)
unicodedata2-18.0.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (489.0KiB)
unicodedata2-18.0.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (489.5KiB)
unicodedata2-18.0.0-pp311-pypy311_pp73-win_amd64.whl (482.1KiB)
unicodedata2-18.0.0.tar.gz (683.8KiB)
Extras:
Dependencies: