{"id":27878,"library":"itanium-demangler","title":"itanium-demangler","description":"A pure Python library for demangling Itanium C++ ABI symbol names (used by GCC, Clang, and others). Version 1.1 is current; it is stable and rarely updated.","status":"active","version":"1.1","language":"python","source_language":"en","source_url":"https://github.com/whitequark/python-itanium_demangler","tags":["demangler","itanium","c++","abi","parser"],"install":[{"cmd":"pip install itanium-demangler","lang":"bash","label":"Default install"}],"dependencies":[],"imports":[{"note":"demangle is not a top-level function; the correct function is demangle_symbol.","wrong":"from itanium_demangler import demangle","symbol":"demangle_symbol","correct":"from itanium_demangler import demangle_symbol"},{"note":"","wrong":null,"symbol":"parse","correct":"from itanium_demangler import parse"}],"quickstart":{"code":"from itanium_demangler import demangle_symbol\n\nmangled = '_Z3fooi'\nresult = demangle_symbol(mangled)\nprint(result)  # 'foo(int)'","lang":"python","description":"Demangle a single Itanium C++ symbol."},"warnings":[{"fix":"Check that the symbol follows the Itanium ABI pattern (starts with _Z). Use different demanglers for other platforms.","message":"The library only handles Itanium ABI mangling (GCC/Clang). It will not demangle MSVC or Rust symbols; it returns None for unrecognized inputs.","severity":"gotcha","affected_versions":"all"},{"fix":"Always check the result: if result is None, handle the error gracefully.","message":"The function returns None if demangling fails, not an exception. Do not assume success without checking the return value.","severity":"gotcha","affected_versions":"all"},{"fix":"No immediate action needed; but for active development consider if alternatives (e.g., libcxx Demangle) are needed.","message":"Version 1.1 is older; the library is in maintenance mode with few updates. There are no known deprecations, but new features should not be expected.","severity":"deprecated","affected_versions":"1.0, 1.1"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Replace 'from itanium_demangler import demangle' with 'from itanium_demangler import demangle_symbol'.","cause":"Incorrect import: users try to import demangle instead of the correct demangle_symbol.","error":"AttributeError: module 'itanium_demangler' has no attribute 'demangle'"},{"fix":"Ensure you pass the mangled symbol string: demangle_symbol('_Z3fooi').","cause":"Calling demangle_symbol without arguments.","error":"TypeError: demangle_symbol() missing 1 required positional argument: 'mangled_name'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}