skillfed

unicodedata2

Unicodedata backport updated to the latest Unicode version.

unicodedata2 v17.0.1 785.8K downloads/30d#5,068 on PyPI39
Permissive license Apache License 2.0 Active released

What it is and what it does

unicodedata2 is a backport and forward-port of Python's built-in unicodedata module that provides access to Unicode character properties and data. It allows you to query character names, categories, bidirectional properties, decompositions, and other Unicode attributes. The package version number tracks the Unicode standard version it implements—version 17.0.1 provides Unicode 17.0.0 data—so you can use newer Unicode versions in your code before they ship in the Python standard library.

The package is distributed as pre-compiled wheels for common platforms (macOS, Linux, Windows) and Python versions (3.10–3.12), making installation straightforward. It has no runtime dependencies and is maintained actively by the fonttools project. Use it when you need access to Unicode properties for text processing, character classification, or when your application requires Unicode data newer than what your Python version's standard library provides.

Use it for:

  • Access Unicode 17.0.0 character properties in Python versions whose stdlib unicodedata hasn't been updated yet
  • Perform character name lookups, category classification, and bidirectional property queries on text
  • Handle emoji and new Unicode blocks in font tools or text processing pipelines
  • Normalize Unicode strings using decomposition and composition data from the latest Unicode standard
  • Support multilingual text analysis that depends on current Unicode character classifications

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides updated Unicode character data tables via a backport of Python's unicodedata module, currently supporting Unicode 17.0.0 with pre-compiled wheels for multiple Python versions and platforms.

Yes, if you need Unicode data newer than your Python version's standard library provides or are working with recent Unicode blocks (emoji, new scripts). No, if your application's Unicode requirements are met by the built-in unicodedata module. The package is stable, actively maintained, has no dependencies, and carries no security vulnerabilities, making it a low-risk addition when needed.

Install

unicodedata2 on PyPI

pip

pip install unicodedata2

uv

uv add unicodedata2

poetry

poetry add unicodedata2

Installing unicodedata2

Before you install

Medium install friction due to compiled wheel distribution across multiple platforms and Python versions (3.10–3.12 supported). Active maintenance with recent release (183 days ago) and ongoing repository activity.

License in practice

Licensed under Apache License 2.0 (permissive), allowing use in proprietary and open-source projects with minimal restrictions beyond attribution.

Quickstart

pip install unicodedata2==17.0.1

import unicodedata2
print(unicodedata2.name('A'))
print(unicodedata2.category('é'))

Verify before relying

  • Whether this package is necessary for projects already using Python's built-in unicodedata or only when newer Unicode versions are required before Python stdlib updates
  • Performance characteristics compared to the standard library unicodedata module
  • Specific use cases where Unicode 17.0.0 support is critical (e.g., emoji handling, new character blocks)

Package facts

License Apache License 2.0 (permissive)
Python support not specified
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 183 days since the last release
Last repo commit
First released
Downloads 785,782/month — #5,068 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: unicodedata2-17.0.1-cp310-cp310-macosx_10_9_universal2.whl; unicodedata2-17.0.1-cp310-cp310-macosx_11_0_arm64.whl; unicodedata2-17.0.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; unicodedata2-17.0.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; unicodedata2-17.0.1-cp310-cp310-musllinux_1_2_aarch64.whl; unicodedata2-17.0.1-cp310-cp310-musllinux_1_2_x86_64.whl; unicodedata2-17.0.1-cp310-cp310-win32.whl; unicodedata2-17.0.1-cp310-cp310-win_amd64.whl; unicodedata2-17.0.1-cp311-cp311-macosx_10_9_universal2.whl; unicodedata2-17.0.1-cp311-cp311-macosx_11_0_arm64.whl; unicodedata2-17.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; unicodedata2-17.0.1-cp311-cp311-musllinux_1_2_x86_64.whl; unicodedata2-17.0.1-cp311-cp311-win32.whl; unicodedata2-17.0.1-cp311-cp311-win_amd64.whl; unicodedata2-17.0.1-cp312-cp312-macosx_10_13_universal2.whl; unicodedata2-17.0.1-cp312-cp312-macosx_11_0_arm64.whl; unicodedata2-17.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; unicodedata2-17.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; unicodedata2-17.0.1-cp312-cp312-musllinux_1_2_aarch64.whl; unicodedata2-17.0.1-cp312-cp312-musllinux_1_2_x86_64.whl

Tags

unicode character data backportunicodedata updated versionunicode 17.0 supportunicode properties lookupcharacter classification unicodeunicode normalization dataunicode version backport
unicode-datatext-processinginternationalization

More Text Processing packages