tangled-up-in-unicode
Access to the Unicode Character Database (UCD)
What it is and what it does
Tangled up in Unicode is a Python module that exposes the Unicode Character Database (UCD) with a richer API than the standard library's unicodedata module. It provides access to character properties like category, bidirectional class, script, block, and age, along with human-readable aliases for property values (e.g., 'Currency_Symbol' instead of 'Sc'). The package ships with Unicode 14.0.0 data, independent of your Python version—a significant advantage over unicodedata, which is locked to whatever Unicode version your Python interpreter was built with.
The module is written in pure Python but can be compiled with Cython for performance. It does not support some unicodedata features like normalize() or lookup() by name, and it is no longer maintained—the last release was in September 2021 and the repository has not been updated since November 2022. This means the Unicode database will not be refreshed as new versions are released.
Use it for:
- Analyzing text to extract script, block, or category information for all characters regardless of Python version
- Building text processing tools that need human-readable Unicode property names and aliases
- Performing linguistic or character-level analysis that requires properties beyond what unicodedata exposes
- Working with legacy code that depends on a specific frozen Unicode version
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides detailed Unicode character properties and metadata from the Unicode Character Database with human-readable aliases, as an alternative to Python's standard library unicodedata module.
No, not recommended for new projects. While the package offers richer Unicode metadata than the standard library, it is abandoned and will not receive updates as Unicode evolves. For most use cases, Python's built-in unicodedata is sufficient and actively maintained. Consider this package only if you have a specific dependency on its API or need its exact Unicode 14.0.0 snapshot and can accept no future maintenance.
Install
tangled-up-in-unicode on PyPI
pip
pip install tangled-up-in-unicodeuv
uv add tangled-up-in-unicodepoetry
poetry add tangled-up-in-unicodeInstalling tangled-up-in-unicode
Before you install
Low install friction with no runtime dependencies. However, the package is abandoned—last release was 2021-09-27 and last commit 2022-11-08—so it will not receive updates for new Unicode versions or bug fixes.
License in practice
Licensed under BSD License (permissive), so you can use it freely in commercial and open-source projects with minimal restrictions.
Quickstart
pip install tangled-up-in-unicode
import tangled_up_in_unicode as unicodedata
char_props = unicodedata.lookup('DOLLAR SIGN')
# or access properties directly for a character
Requires Python 3.6 or later. The package provides Unicode 14.0.0 data but will not update as new Unicode versions are released.
Verify before relying
- Whether the frozen Unicode 14.0.0 database is sufficient for your use case or if you need access to newer Unicode versions
- Performance characteristics when compiled with Cython versus the pure Python implementation
- How well the package handles edge cases or malformed input compared to unicodedata
Package facts
| License | BSD License (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 1,782 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 400,544/month — #6,938 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tangled_up_in_unicode-0.2.0-py3-none-any.whl
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
unicodedataplusExtends Python's built-in unicodedata module…
permissive · top 15,000 on PyPI
unicodedata2Provides updated Unicode character data tables…
permissive · top 15,000 on PyPI
graphemeuProvides string manipulation functions that…
permissive · top 5,000 on PyPI
uc-micro-pyProvides a minimal Unicode data subset for…
permissive · top 1,000 on PyPI
UnidecodeConverts Unicode text to ASCII-safe…
copyleft · top 1,000 on PyPI
emojiConverts between emoji characters and their…
permissive · top 1,000 on PyPI
pyunormalizeProvides Unicode normalization (NFC, NFD, NFKC,…
permissive · top 5,000 on PyPI
unisegDetermines Unicode text segmentation…
permissive · top 15,000 on PyPI
confusable-homoglyphsDetects Unicode homoglyphs and mixed-script…
permissive · top 5,000 on PyPI
nicknamesProvides a curated dataset of English given…
permissive · top 15,000 on PyPI