Tangled up in Unicode
This module provides access to character properties for all Unicode characters, from the Unicode Character Database (UCD) .
This module provides an alternative to Python's standard library unicodedata.
Tangled up in Unicode provides four main benefits compared to the standard library:
- The latest version of the Unicode database is used.
- Adds human-readable class names (Property value aliases).
- Extends the properties to use more potential of the database.
- UCD version independent of Python version (Python 3.6 has UCD 9.0, 3.7 has UCD 11.0.0, 3.8 has 12.0.1, 3.9 has 13.0.0)
Note that Python 3 added unicode support, but that this is different from the UCD. Unicode support handles storing and manipulating unicode characters, while this package aims to provide properties of specific characters.
Example
The default lookup in unicodedata for $:
| Property | Value |
|---|---|
| Name | Dollar Sign |
| Category (Short) | Sc |
| Bidirectional (Short) | ET |
| Combining | 0 |
| Mirrored | 0 |
| East Asian Width (Short) | Na |
| Decomposition |
Extra information provided by this package
| Property | Value |
|---|---|
| Category Alias (Long) | Currency_Symbol |
| Bidirectional Alias (Long) | European_Terminator |
| East Asian Width Alias (Long) | Narrow |
| Script (Long) | Common |
| Script (Short) | Zyyy |
| Block (Long) | Basic_Latin |
| Block (Short) | ASCII |
| PropList | Pattern_Syntax |
| Uppercase Character | |
| Lowercase Character | |
| Titlecase Character |
Properties comparison
| Property | tangled-up-in-unicode |
unicodedata |
|---|---|---|
| Name | ☑ | ☑ |
| Decimal | ☑ | ☑ |
| Digit | ☑ | ☑ |
| Numeric | ☑ | ☑ |
| Combining | ☑ + alias | ☑ |
| Mirrored | ☑ | ☑ |
| Decomposition | ☑ | ☑ |
| Category | ☑ + alias | ☑ |
| Bidirectional | ☑ + alias | ☑ |
| East Asian Width | ☑ + alias | ☑ |
| Script | ☑ + alias | - |
| Block | ☑ + alias | - |
| Age | ☑ + alias | - |
| Binary Property Values | ☑ | - |
| Version | 14.0.0 (latest) | 12.0.1 |
Table 1: presence of properties is denoted by ☑ (Unicode Character 'BALLOT BOX WITH CHECK' (U+2611)).
Usage
import tangled_up_in_unicode as unicodedata
The package can be installed via pip:
pip install tangled-up-in-unicode
Performance
The module is written in Python. It can be compiled with Cython to gain competitive performance with the native library.
Unsupported features
Some of the features in unicodedata are not supported.
| Feature | tangled-up-in-unicode |
unicodedata |
|---|---|---|
| lookup | - | ☑ |
| normalize | - | ☑ |
| ucd_3_2_0 | - | ☑ |
Acknowledgements
Where possible, code and documentation of the original module are used. This repository is part of the Dylan Profiling project.
Release files for tangled-up-in-unicode 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tangled_up_in_unicode-0.2.0.tar.gz | 4.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tangled_up_in_unicode-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.4 MB
Release files / tangled_up_in_unicode-0.2.0.tar.gz
| Download URL | tangled_up_in_unicode-0.2.0.tar.gz |
|---|---|
| Size | 4.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de56dbaf32de1b8c65621f97b06b7de21cba18c8e61f3988a426ffe3c40fed36
|
|
BLAKE2b-256 checksum How to use checksums |
1559f6ae6399c25b61719ebcca245d9be0805ce0767fd12879b75f6d0b04331e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Release files / tangled_up_in_unicode-0.2.0-py3-none-any.whl
| Download URL | tangled_up_in_unicode-0.2.0-py3-none-any.whl |
|---|---|
| Size | 4.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
154be12605b1687a17133aa741ae951cf9ee531c48a0c19f98d83ec5cb3cc7be
|
|
BLAKE2b-256 checksum How to use checksums |
dd603651960b74aead282ec1ad819e70bdccf3ee73322d13d4339a6e3f5b7ed3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|