Skip to main content

varga

Two questions about one document. guess_type answers the first from cue phrases and countable evidence, with no model unless two kinds tie. as_schema and structured answer the second against a shape you name or invent.

Install

uv add varga            # doctypes; no model, no network
uv add 'varga[llm]'     # ...and `structured`, which asks one

What is it

INVOICE = '''# INVOICE
Invoice No: ACM-2024-0117
Date: 2024-03-01
Bill to: Contoso GmbH, Berlin
From: Acme Supplies Ltd
Total due: 1,240.00 EUR
Payment terms: net 30
'''
r = guess_type(INVOICE)
r.doctype, r.decisive, round(r.margin, 2)
('invoice', True, 0.4)

decisive is the whole point: it says whether the cues settled it. When two kinds tie, margin is 0 and a caller knows to spend a model call. Nothing else here costs one.

signals(INVOICE).counts
{'money': 1, 'date': 1, 'ref': 1, 'heading': 1, 'org': 2}

What is in it

from dataclasses import fields
[f.name for f in fields(as_schema('invoice'))]
['number',
 'date',
 'due_date',
 'vendor',
 'vendor_tax_id',
 'bill_to',
 'ship_to',
 'currency',
 'subtotal',
 'tax',
 'total',
 'payment_terms',
 'items']

Ten shapes are built in: invoice, purchase_order, quote, receipt, catalogue, contract, resume, paper, meeting_notes, other. Or write one on the spot:

[(f.name, f.type.__name__) for f in fields(as_schema('vendor:str, total:float, items:list'))]
[('vendor', 'str'), ('total', 'float'), ('items', 'list')]

structured(chat, prompt, schema) fills it. It prefers the model’s constrained mode and falls back to a JSON reply when that raises, so a model without tool calling still answers.

The doctypes

len(DOCTYPES), sorted(DOCTYPES)

Ten of them are work-product labels: proposal, presentation, requirements_spec, technical_design, regulatory_guidance, procedure, qa_artifact, roadmap, claim, clinical_record, and each is decisive on its own text without a model. Prose that merely borrows the vocabulary scores under 0.2 against every one of them.

What it depends on

fastcore and rahasya, for the honorific-anchored name regex the entity leg shares with the privacy gate. One definition of what a name is.

rishi is needed only by structured. vruksha adds keyphrases to signals().ents and is display only: no doctype score reads them, and signals works without it.

Development

The notebooks in nbs/ are the source; the modules are generated.

pip install -e .
nbdev_prepare

Metadata

Release files for varga 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for varga 0.0.5
File Size Uploaded
varga-0.0.5.tar.gz 19.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for varga 0.0.5
File Interpreter ABI Platform
varga-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 40.7 kB

Release files / varga-0.0.5.tar.gz

Download URL varga-0.0.5.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6aebe5190e870154de15e69b158bb099e99b67aabadbbc840a1fa93c62d4f74e
BLAKE2b-256 checksum
How to use checksums
a641a1ac2d8bdc9fd23f4289ee3e3b39c186cfcbc5e8a8d9b5dbaa049b103a31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / varga-0.0.5-py3-none-any.whl

Download URL varga-0.0.5-py3-none-any.whl
Size 20.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b6d85abf40ba371fd65c826f09e9303b020955ad5d45b72e68401708c43274ac
BLAKE2b-256 checksum
How to use checksums
b77e30abb1aa98b5aea5c560977cfabbd66d0680c1a1fae59064f9bf235be1aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 release files

0.0.4

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page