{"id":22515,"library":"unicodedataplus","title":"unicodedataplus","description":"An enhanced drop-in replacement for Python's unicodedata module, providing additional Unicode properties like script extensions, Indic positional/syllabic categories, property value aliases, and up-to-date data (current version 16.0.0.post1, Unicode 16.0.0). Released on PyPI with occasional updates aligned with new Unicode versions.","status":"active","version":"16.0.0.post1","language":"python","source_language":"en","source_url":"https://github.com/iwsfutcmd/unicodedataplus","tags":["unicode","unicodedata","character-properties","text-processing"],"install":[{"cmd":"pip install unicodedataplus","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"Standard import, no common mistake.","wrong":null,"symbol":"unicodedataplus","correct":"import unicodedataplus"},{"note":"","wrong":null,"symbol":"lookup","correct":"unicodedataplus.lookup(name)"},{"note":"","wrong":null,"symbol":"name","correct":"unicodedataplus.name(chr, default=None)"},{"note":"","wrong":null,"symbol":"decimal","correct":"unicodedataplus.decimal(chr, default=None)"},{"note":"","wrong":null,"symbol":"category","correct":"unicodedataplus.category(chr)"},{"note":"","wrong":null,"symbol":"bidirectional","correct":"unicodedataplus.bidirectional(chr)"},{"note":"","wrong":null,"symbol":"combining","correct":"unicodedataplus.combining(chr)"},{"note":"","wrong":null,"symbol":"east_asian_width","correct":"unicodedataplus.east_asian_width(chr)"},{"note":"","wrong":null,"symbol":"mirrored","correct":"unicodedataplus.mirrored(chr)"},{"note":"","wrong":null,"symbol":"decomposition","correct":"unicodedataplus.decomposition(chr)"},{"note":"","wrong":null,"symbol":"normalize","correct":"unicodedataplus.normalize(form, unistr)"},{"note":"","wrong":null,"symbol":"ucd_3_2_0","correct":"unicodedataplus.ucd_3_2_0"},{"note":"","wrong":null,"symbol":"unidata_version","correct":"unicodedataplus.unidata_version"}],"quickstart":{"code":"import unicodedataplus as ud\n\n# Check the Unicode version\nprint(ud.unidata_version)\n\n# Get the name of a character\nprint(ud.name('A'))  # Output: LATIN CAPITAL LETTER A\n\n# Get script extension for a character\n# Note: script extensions are a list of scripts (property is 'Script_Extensions')\nprint(ud.script_extensions('A'))  # Output: ['Latin']\n\n# Look up a character by alias name\nprint(ud.lookup('LATIN CAPITAL LETTER A'))  # Output: A\n\n# Check a property (e.g., Indic syllabic category for Devanagari vowel sign)\nimport sys\nprint(ud.indic_syllabic_category('\\u0901'))","lang":"python","description":"Basic usage: import and use as a drop-in for unicodedata, plus extended property access."},"warnings":[{"fix":"Use Python 3.6 or later.","message":"unicodedataplus requires Python 3.6+; Python 2 is not supported (dropped in version 12+).","severity":"breaking","affected_versions":">=12.0.0"},{"fix":"Ensure you import unicodedataplus and don't assume stdlib unicodedata has the same methods.","message":"The module is a drop-in replacement for unicodedata, but some properties only exist in unicodedataplus (e.g., script_extensions). If you rely on stdlib unicodedata and switch, your code may break if those extra attributes are missing in stdlib.","severity":"gotcha","affected_versions":"all"},{"fix":"Check the documentation for the latest API. Use with caution if stability is needed.","message":"The function `script_extensions` and property `indic_syllabic_category`, `indic_positional_category` are available but not yet finalized in Unicode standard; API may change.","severity":"deprecated","affected_versions":"all"},{"fix":"Prefer installing from precompiled wheels via pip (e.g., `pip install unicodedataplus --only-binary=:all:`). If unavailable, install a C compiler (e.g., Microsoft Build Tools for Windows).","message":"Installation may fail on systems without a working C compiler (e.g., Windows with missing VC++ build tools) as the package compiles a C extension. Use a binary wheel if available.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'16.0.0':34,37 'addit':14 'alias':25 'align':44 'categori':22 'charact':52 'character-properti':51 'current':32 'data':31 'date':30 'drop':5 'drop-in':4 'enhanc':3 'extens':19 'indic':20 'like':17 'modul':12 'new':46 'occasion':42 'positional/syllabic':21 'post1':35 'process':56 'properti':16,23,53 'provid':13 'pypi':40 'python':9 'releas':38 'replac':7 'script':18 'text':55 'text-process':54 'unicod':15,36,47,49 'unicodedata':11,50 'unicodedataplus':1 'up-to-d':27 'updat':43 'valu':24 'version':33,48","created_at":"2026-04-27T17:05:34.858735+00:00","updated_at":"2026-04-27T17:05:34.858735+00:00","problems":[{"fix":"Run `pip install unicodedataplus` in your environment.","cause":"Package not installed.","error":"ModuleNotFoundError: No module named 'unicodedataplus'"},{"fix":"Upgrade to version 12.1.0 or later: `pip install --upgrade unicodedataplus`.","cause":"Using an older version of unicodedataplus that doesn't have that attribute.","error":"AttributeError: module 'unicodedataplus' has no attribute 'script_extensions'"},{"fix":"Pass a single-character string: `unicodedataplus.name('A')`.","cause":"Passed a string with more than one character (e.g., `unicodedataplus.name('AB')`).","error":"ValueError: character must be a string of length 1"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"16.0.0.post1","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"http://github.com/iwsfutcmd/unicodedataplus","docs":null,"changelog":null,"pypi":"https://pypi.org/project/unicodedataplus/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["serialization","data"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-28","last_verified":"2026-06-28","next_check":"2026-07-28","install_tag":null}}