Skip to main content

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dhaturupa-0.4.0.tar.gz (36.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dhaturupa-0.4.0-py3-none-any.whl (34.3 kB view details)

Uploaded Python 3

File details

Details for the file dhaturupa-0.4.0.tar.gz.

File metadata

  • Download URL: dhaturupa-0.4.0.tar.gz
  • Upload date:
  • Size: 36.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for dhaturupa-0.4.0.tar.gz
Algorithm Hash digest
SHA256 44ba6cdf0f4dfee169b5aa6c63a942c2e78b5bb608090fb3429173dc84110675
MD5 8dfb584d9133c26aedccd3deebf4db6e
BLAKE2b-256 7820b86fbf32ba5c6f1dd41ef5cbc856e081670c572570261cdfa681babba69c

See more details on using hashes here.

File details

Details for the file dhaturupa-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: dhaturupa-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 34.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for dhaturupa-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97b09d6fc65573342f25fd214abf1a7d0d117aebbaa983ed5c1d3037be6eaa44
MD5 2df2d22dd4a57648e567168a8cb148f0
BLAKE2b-256 f6e27b87c18bf0873ecefe3070b891192baeb04a392cd490156cd0f5bdb95585

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 files

0.3.0

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page