A structured, metadata-driven Unicode symbol engine for Python.
Project description
Symjoy
| Version | Highlights |
|---|---|
| v2.6.0 | Indexed search engine |
| v2.5.0 | Metadata-driven architecture |
| v2.1.0 | Helper APIs & improved search |
| v2.0.0 | Structured category API |
A structured, metadata-driven Unicode symbol engine for Python.
symjoy provides clean, consistent, and intelligent access to Unicode characters including:
- Emojis 😄
- Symbols ♥
- Arrows →
- Mathematical symbols π
- Currency signs ₹
- Miscellaneous icons ☀
It is designed for chat applications, games, educational tools, financial apps, and any Python project requiring Unicode characters.
✨ Key Features
- JSON-backed data architecture.
- Lazy-loaded registry.
- Automatic keyword enrichment.
- Semantic relationship graph.
- Multilingual alias support.
- Indexed search engine for fast lookups.
- Deterministic search ordering.
- Category-isolated APIs.
- Backward compatible with v2.x.
📦 Installation
pip install symjoy
Required Python version: 3.12+
🚀 Basic Usage
from symjoy import emoji, symbols, arrows, math, currency, misc, search
print(emoji.get("smile")) # 😄
print(symbols.get("heart")) # ♥
print(arrows.get("right")) # →
print(math.get("pi")) # π
print(currency.get("rupee")) # ₹
print(misc.get("sun")) # ☀
print(emoji.random()) # Random emoji
📚 Category API
Each category exposes a consistent interface:
get(name) -> str | None
random() -> str
list() -> list[str]
items() -> dict[str, str]
related(name) -> list[dict]
Example:
from symjoy import emoji
print(emoji.list())
print(emoji.related("broken_heart"))
🔎 Intelligent Search
Search across all categories:
from symjoy import search
results = search("heart")
Search is ranked by:
- Exact name match.
- Prefix name match.
- Keyword match.
- Alias match.
- Substring fallback.
🧠 Metadata Engine (v2.5.0)
v2.5.0 introduces a major internal upgrade:
- JSON-driven data storage
- Runtime metadata enrichment
- Automatic keyword generation
- Token-based semantic relationship graph
- Fully category-agnostic registry
Example:
emoji.related("heart")
search("joy")
⚡ Indexed Search Engine (v2.6.0)
v2.6.0 introduces an internal symbol index engine that significantly improves search performance.
The registry now builds internal indexes for:
- symbol names.
- keywords.
- aliases.
- name tokens.
This allows search queries to avoid scanning the entire symbol registry and instead perform indexed lookups.
Benefits:
- faster search performance.
- scalable architecture for larger Unicode datasets.
- improved metadata-based queries.
🔁 Backward Compatibility (v1.x)
Version 2.x still supports legacy v1-style access:
from symjoy import emojis
print(emojis["smile"])
⚠️ This usage is deprecated and will be removed in symjoy v3.0.0.
📖 Documentation
Project Links
If any issue with the package you can contact here:
- Email: vishwanathdvgmm@gmail.com
The source code is available on GitHub
- Github: https://github.com/vishwanathdvgmm/symjoy
- Github issues: https://github.com/vishwanathdvgmm/symjoy/issues
The link for the package in pypi.org is:
License: MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file symjoy-2.6.0.tar.gz.
File metadata
- Download URL: symjoy-2.6.0.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7baa00c6916c97af29c76f42442a033c4eebff539542263bdd520845e6706b89
|
|
| MD5 |
1565a857fc175e95dd07f80e061f24bb
|
|
| BLAKE2b-256 |
6cee41e826f1886065176265031da49f9d93aba4b12f882a6c13bb600125a00e
|
File details
Details for the file symjoy-2.6.0-py3-none-any.whl.
File metadata
- Download URL: symjoy-2.6.0-py3-none-any.whl
- Upload date:
- Size: 23.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
860ba1a924084fe2d35ddf8cd1e0bf8cae217463fdd54cdad2f2247c66d3286d
|
|
| MD5 |
6b73a6af67821ede6ca5649910169316
|
|
| BLAKE2b-256 |
ba7dbcf0fa1d30cbc4e36ce9a04cb4f3b4d7f13305d2d10dabac88d4da553466
|