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.6
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.6.tar.gz | 32.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ganapati-0.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 67.0 kB
Release files / ganapati-0.0.6.tar.gz
| Download URL | ganapati-0.0.6.tar.gz |
|---|---|
| Size | 32.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b267a8420c00c25e44176e2ca8537ca4cf54d6d51f88cb4f7976ff695739886a
|
|
BLAKE2b-256 checksum How to use checksums |
d3c08c9ea9d0bedfa707818d516f24f8b4f9c7f5271da0637cc2107c4893fbd2
|
| 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.6-py3-none-any.whl
| Download URL | ganapati-0.0.6-py3-none-any.whl |
|---|---|
| Size | 34.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e229b84e6ca3367afb41cb47253c6c30969c14e02174ea49e16faf4a1e7f8213
|
|
BLAKE2b-256 checksum How to use checksums |
db6e99fbca76dff547223921cd971103309ac07e8cfaa278696f5ae22a86465e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.1
|