A Python package for Sanskrit verb conjugation (dhāturūpa) - generates conjugation tables for Sanskrit verb roots across all tenses and moods
Project description
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.
Search and lookup
from dhaturupa import get_dhatu_info, search_dhatus, list_dhatus
get_dhatu_info('gam')
# {'dhatu': 'gam', 'gana': 1, 'gana_name': 'bhvādi',
# 'pada': 'parasmaipada', '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
CLI
dhaturupa conjugate bhū
# ============================================================
# धातु (Dhātu): bhū
# Stem: bhava
# ============================================================
# Prathama (3rd) bhavati bhavataḥ bhavanti
# Madhyama (2nd) bhavasi bhavathaḥ bhavatha
# Uttama (1st) bhavāmi bhavāvaḥ bhavāmaḥ
dhaturupa conjugate bhū --lakara loṭ
dhaturupa conjugate bhū --all-lakaras
dhaturupa conjugate bhū --json
dhaturupa info gam
dhaturupa search "to know"
dhaturupa list --gana 1
What's inside
85+ roots across all 10 gaṇas. Stems are generated with guṇa/vṛddhi gradation and vikaraṇa suffixes, with pre-computed overrides for irregulars like √gam → gaccha, √kṛ → karo, √jñā → jānā.
10 lakāras:
- laṭ (present), loṭ (imperative), laṅ (imperfect), vidhiliṅ (optative)
- lṛṭ (future), lṛṅ (conditional)
- liṭ (perfect), luṭ (periphrastic future), luṅ (aorist), āśīrliṅ (benedictive)
Both parasmaipada and ātmanepada endings. Zero dependencies.
Formatter
from dhaturupa import conjugate
from dhaturupa.formatter import format_table
table = format_table(conjugate('bhū'))
print(table)
table_deva = format_table(conjugate('bhū'), script='devanagari')
print(table_deva) # भवति, भवतः, भवन्ति...
JSON API
from dhaturupa import conjugate_json, get_dhatu_info_json, search_dhatus_json
conjugate_json('bhū')
# '{"dhatu":"bhū","gana":1,"forms":{"prathama":{"ekavacana":"bhavati",...},...}}'
conjugate_json('bhū', pretty=True)
# pretty-printed with indentation
get_dhatu_info_json('gam')
# '{"dhatu":"gam","gana":1,"gana_name":"bhvādi","pada":"parasmaipada","meaning":"to go"}'
search_dhatus_json('to know')
# '[{"dhatu":"budh",...},{"dhatu":"vid",...},{"dhatu":"jñā",...}]'
Every public method has a _json twin: conjugate_json(), get_all_lakaras_json(), get_dhatu_info_json(), list_dhatus_json(), search_dhatus_json(). All take pretty=True for indented output. Unicode is preserved, not escaped.
License
MIT
Project details
Release history Release notifications | RSS feed
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 dhaturupa-0.1.1.tar.gz.
File metadata
- Download URL: dhaturupa-0.1.1.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdb6d49f596bf8bfa259e86103a10b36364a010278b5dd13ef1e798a85d485cf
|
|
| MD5 |
b207db17e1bebdaa427921a4c6e3f4d8
|
|
| BLAKE2b-256 |
4cf7aff49437a581a6855eb598bd8abb861a8b67aaa1aebf20b03259e418192a
|
File details
Details for the file dhaturupa-0.1.1-py3-none-any.whl.
File metadata
- Download URL: dhaturupa-0.1.1-py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b69cffe39c445609d0930f0d5375fb546e0c46ff1852e403bfb359178a698988
|
|
| MD5 |
9b13da5ad467356d3a5cf8af4e1a5752
|
|
| BLAKE2b-256 |
6d78c59369a20330f6f0b813f82e437fd10af2a9afc71f8d2046de136d27fc69
|