dhaturupa
Sanskrit verb conjugation. Give it a root, get back the full paradigm.
pip install dhaturupa
Quick start
from dhaturupa import conjugate
result = conjugate('bhū')
print(result['forms']['prathama']['ekavacana']) # bhavati
print(result['forms']['uttama']['ekavacana']) # bhavāmi
result = conjugate('bhū', lakara='loṭ') # imperative
result = conjugate('bhū', pada='ātmanepada') # override voice
conjugate() returns the 3×3 grid (puruṣa × vacana). get_all_lakaras() does it for all 10 tenses at once.
Reverse lookup
from dhaturupa import get_root, get_root_summary
get_root('bhavati')
# [{'dhatu': 'bhū', 'meaning': 'to be, to become',
# 'lakara': 'laṭ', 'purusha': 'prathama', 'vacana': 'ekavacana', ...}]
get_root_summary('gacchati')
# ['√gam (to go) — laṭ, prathama puruṣa, ekavacana, parasmaipada']
Give it any conjugated form, get back the root and full morphological analysis.
Search and lookup
from dhaturupa import get_dhatu_info, search_dhatus, list_dhatus
get_dhatu_info('gam')
# {'dhatu': 'gam', 'gana': 1, 'meaning': 'to go'}
search_dhatus('to know')
# [{'dhatu': 'budh', ...}, {'dhatu': 'vid', ...}, {'dhatu': 'jñā', ...}]
list_dhatus(gana=4) # all divādi roots
Transliteration
from dhaturupa.transliteration import iast_to_devanagari, devanagari_to_iast
iast_to_devanagari('bhavati') # भवति
devanagari_to_iast('भवति') # bhavati
JSON API
from dhaturupa import conjugate_json, get_root_json
conjugate_json('bhū', pretty=True)
# '{"dhatu": "bhū", "forms": {"prathama": {"ekavacana": "bhavati", ...}}}'
get_root_json('gacchati')
# '[{"dhatu": "gam", "meaning": "to go", "lakara": "laṭ", ...}]'
Every public method has a _json twin. All take pretty=True for indented output. Unicode preserved, not escaped.
CLI
dhaturupa conjugate bhū
# Prathama (3rd) bhavati bhavataḥ bhavanti
# Madhyama (2nd) bhavasi bhavathaḥ bhavatha
# Uttama (1st) bhavāmi bhavāvaḥ bhavāmaḥ
dhaturupa root bhavati
# √bhū (to be, to become) — laṭ, prathama puruṣa, ekavacana
dhaturupa conjugate bhū --lakara loṭ
dhaturupa conjugate bhū --all-lakaras
dhaturupa conjugate bhū --json
dhaturupa search "to know"
dhaturupa list --gana 1
What's inside
1600+ roots from the Pāṇinian Dhātupāṭha across all 10 gaṇas. 10 lakāras. Both parasmaipada and ātmanepada. Strong/weak stem alternation, guṇa/vṛddhi gradation, vikaraṇa suffixes, sandhi, and pre-computed irregular stems. Zero dependencies.
Root data sourced from ambuda-org/vidyut Dhātupāṭha, merged with hand-curated English meanings for common roots.
License
MIT © Hemanth.HM
Metadata
Release files for dhaturupa 0.4.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 | |
|---|---|---|---|
| dhaturupa-0.4.0.tar.gz | 36.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dhaturupa-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.8 kB
Release files / dhaturupa-0.4.0.tar.gz
| Download URL | dhaturupa-0.4.0.tar.gz |
|---|---|
| Size | 36.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
44ba6cdf0f4dfee169b5aa6c63a942c2e78b5bb608090fb3429173dc84110675
|
|
BLAKE2b-256 checksum How to use checksums |
7820b86fbf32ba5c6f1dd41ef5cbc856e081670c572570261cdfa681babba69c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Release files / dhaturupa-0.4.0-py3-none-any.whl
| Download URL | dhaturupa-0.4.0-py3-none-any.whl |
|---|---|
| Size | 34.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
97b09d6fc65573342f25fd214abf1a7d0d117aebbaa983ed5c1d3037be6eaa44
|
|
BLAKE2b-256 checksum How to use checksums |
f6e27b87c18bf0873ecefe3070b891192baeb04a392cd490156cd0f5bdb95585
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|