unicodedata2
Unicodedata backport updated to the latest Unicode version.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
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 · maintenance · safety
Apache License 2.0 (permissive) — Licensed under Apache License 2.0 (permissive), allowing use in proprietary and open-source projects with minimal restrictions beyond attribution.
last release 2026-02-12 (183 days) · last repo commit 2026-03-05 · 39 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 785,782 downloads/mo, #5,068 on PyPI
Alternatives
Verify before relying
pip install unicodedata2==17.0.1
import unicodedata2
print(unicodedata2.name('A'))
print(unicodedata2.category('é'))- 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)
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 on it.
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
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
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “unicode character data backport”
- unicodedata2Provides updated Unicode character data tables via a backport of…
- tangled-up-in-unicodeProvides detailed Unicode character properties and metadata from the…
- uc-micro-pyProvides a minimal Unicode data subset for linkify-it-py projects,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Text Processing packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyparsing provides a library for building text parsers directly in Python code using composable grammar classes, handling quoted strings, whitespace variation, and embedded comments without regex or lex/yacc.
Install it if you need to parse text or define grammars programmatically.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
RapidFuzz provides fast fuzzy string matching using Levenshtein Distance and related metrics, implemented mostly in C++ with Python bindings for rapid similarity scoring and approximate string matching.
Install it if you need fuzzy string matching; it's a solid replacement for FuzzyWuzzy with better licensing and performance.
tinycss2 parses CSS strings into token and block objects, and generates CSS strings from those objects, following the CSS Syntax Level 3 specification without enforcing specific properties or values.
Install it if your project requires CSS tokenization or syntax manipulation.
See also unicodedataplus · tangled-up-in-unicode · traceback2 · pyunormalize · textwrap3 · backports.csv · pyuca · configparser2 · contextlib2 · linecache2