Metadata-Version: 2.5
Name: lekhaka
Version: 0.0.1
Summary: Books of verses read into chapters: verse numbers mended, chapters assembled, akṣaras repaired. On vishalakshi.
Project-URL: Repository, https://github.com/vedicreader/lekhaka
Project-URL: Documentation, https://vedicreader.github.io/lekhaka/
Author-email: Karthik <karthik.rajgopal@hotmail.com>
License: Apache-2.0
License-File: LICENSE
Keywords: books,nbdev,ocr,sanskrit,tamil,verse
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.12
Requires-Dist: fastcore>=1.8.0
Requires-Dist: vishalakshi>=0.1.20
Description-Content-Type: text/markdown

# lekhaka


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

lekhaka (लेखक, a scribe) turns a printed book of verses into its chapters. Each page is read by a vision model through [vishalakshi](https://github.com/vedicreader/vishalakshi), local or hosted, as blocks: verses with their printed numbers, headings, colophons. lekhaka gathers the verses into chapters, mends the numbering slips a reader makes, repairs malformed Devanagari akṣaras, and lists what a proofreader should check.

## Install

``` sh
pip install lekhaka
```

## How to use

``` python
from lekhaka import read_book, book_md
from vishalakshi import Vault

b = read_book('gita.pdf', Vault('books.db'), model='claude/sonnet', title='Bhagavad Gita',
              hint='Each verse ends in ॥ n ॥.', counts=[47, 72])
b.chapters[0]['verses'][:2]     # [{n, text, page, heading}, ...]
b.probs                         # numbers mended, counts that differ, for a proofreader
print(book_md(b.chapters, 'Bhagavad Gita'))
```

With a vault the pages are kept as versions of one document: `vault.proofread(b.doc_id, readers)` has other models read them again, and `vault.accept` applies the changes the owner chooses. Without a vault nothing is stored.

The pieces work on their own, on the pages `vishalakshi.read_doc` returns or any `{page, blocks}` list:

``` python
chs, probs = assemble([dict(page=0, blocks=[dict(kind='verse', n='॥१॥', text='क ॥१॥'), dict(kind='verse', n='३', text='ख ॥३॥')])])
[v['n'] for v in chs[0]['verses']], probs
```

``` python
fix_aksharas('ध्ार्म'), vnum('२६॥२७')
```
