ganapati
Metre, verse boundaries, citations, and lemmas. import ganapati registers the Sanskrit reader
profiles, so a GRETIL or TEI source is chunked by verse and its tree is built from the citations.
from litesearch import Index
from ganapati import Meter
ix = Index('vault.db')
ix.add('mahabharata.htm')
ix.search('dharma')[:3]
ix.db.by_meter(meter=Meter.ANUSTUBH)[:3]
/Users/71293/code/personal/orgs/ganapati/.venv/lib/python3.13/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
[{'content': 'nārāyaṇaṃ namaskṛtya naraṃ caiva narottamam\ndevīṃ sarasvatīṃ caiva tato jayam udīrayet',
'metadata': '{"meter": "anuṣṭubh", "variant": "pathyā", "gana": "ta_ra_ga_ga", "pada": "8"}',
'node_id': '73a63025c7fc3d14#0',
'doc_id': '73a63025c7fc3d14',
'page': 0},
{'content': 'samāsīnān abhyagacchad brahmarṣīn saṃśitavratān\nvinayāvanato bhūtvā kadā cit sūtanandanaḥ',
'metadata': '{"meter": "anuṣṭubh", "variant": "pathyā ra-vipulā", "gana": "ya_ta_ga_ga", "pada": "8"}',
'node_id': '73a63025c7fc3d14#0',
'doc_id': '73a63025c7fc3d14',
'page': 2},
{'content': 'tam āśramam anuprāptaṃ naimiṣāraṇyavāsinaḥ\ncitrāḥ śrotuṃ kathās tatra parivavrus tapasvinaḥ',
'metadata': '{"meter": "anuṣṭubh", "variant": "pathyā", "gana": "ja_sa_ga_ga", "pada": "8"}',
'node_id': '73a63025c7fc3d14#0',
'doc_id': '73a63025c7fc3d14',
'page': 3}]
Every chunk carries its metre as searchable metadata.
verse_meta('dharmakṣetre kurukṣetre samavetā yuyutsavaḥ '
'māmakāḥ pāṇḍavāścaiva kimakurvata sañjaya')
{'meter': 'anuṣṭubh', 'variant': 'pathyā', 'gana': 'ma_ra_ga_ga', 'pada': '8'}
The scan behind it, and the metre that pattern names:
scan('dharmakṣetre kurukṣetre') # g for heavy, l for light
'gggglggg'
detect_meter('kaścit kāntāvirahaguruṇā svādhikārātpramattaḥ '
'śāpenāstaṃgamitamahimā varṣabhogyeṇa bhartuḥ '
'yakṣaścakre janakatanayāsnānapuṇyodakeṣu '
'snigdhacchāyātaruṣu vasatiṃ rāmagiryāśrameṣu')['name']
<Meter.MANDAKRANTA: 'mandākrāntā'>
A line at a time
Forced alignment and ASR hand you lines, not verses. match_pada names a metre from one pāda and
group_verses finds how many lines make a verse.
padas = ['kaścit kāntāvirahaguruṇā svādhikārātpramattaḥ',
'śāpenāstaṃgamitamahimā varṣabhogyeṇa bhartuḥ',
'yakṣaścakre janakatanayāsnānapuṇyodakeṣu',
'snigdhacchāyātaruṣu vasatiṃ rāmagiryāśrameṣu']
match_pada(padas[0]), group_verses(padas).size
The three modules
| module | what is in it |
|---|---|
ganapati.text |
verse boundaries, pādas and verse numbers, the two chunkers, readers for GRETIL, TEI, VR XML and DCS |
ganapati.metre |
IAST transliteration, syllable weights, the gaṇas, 80 metres, mātrā metres, a metre by name |
ganapati.lemma |
vidyut lemmas, Monier-Williams glosses, the source’s own etymology entries and their repair, the reader profiles |
Install
pip install ganapati
Lemmas and glosses need vidyut and an 81 MB data download, both reached on first use. Without
them a store still gets metre, audio timings, and whatever analysis the source itself carries.
Metadata
Release files for ganapati 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ganapati-0.0.5.tar.gz | 32.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ganapati-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.9 kB
Release files / ganapati-0.0.5.tar.gz
| Download URL | ganapati-0.0.5.tar.gz |
|---|---|
| Size | 32.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
777504f3bf184ef2091db7ce8b58189e6abd054e6e75a9ef39a5184fa379eb05
|
|
BLAKE2b-256 checksum How to use checksums |
0a3b6fd9a6fdce0f534b5bb1d38521924955a8d18aa3059c43e25fd40bfb0bac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.1
|
Release files / ganapati-0.0.5-py3-none-any.whl
| Download URL | ganapati-0.0.5-py3-none-any.whl |
|---|---|
| Size | 34.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ecfa4418b03b32b0f40a4395bdd168c8daf7723178107dac0d1b8cd49b828944
|
|
BLAKE2b-256 checksum How to use checksums |
f0306b7d1aa1b9027ebaee3fb706f1cc6e1bc3956767d3af02cd315507c50a96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.1
|