docs / Python library

Python library (minifmt 1.1.0)#

Reference implementation. No runtime dependencies; tiktoken is optional for token counting.

Public API#

from minifmt import (Contract, Field, MiniError, MiniValidationError, Document,
                     parse, dumps, detect_prefix, Registry, spec_block, parser_prompt,
                     canonical_equal, roundtrip_ok, __version__, SPEC_VERSION)
Function What it does
Registry.load(dir=…) Discovers forks/*/contract.json; reg.get("a") returns the Contract.
parse(text, contract, strict=True) Parses and validates. Strict: raises MiniValidationError with every error. Lenient (strict=False): returns a Document with valid records and errors.
Document.to_canonical() Canonical JSON: {"prefix", "header", "<records_key>": [...]}.
dumps(obj, contract) Canonical → .mini.
spec_block(contract, lang="en"|"es") Specification block for the model's prompt.
parser_prompt(contract, fixtures, lang) Prompt for a model to write a parser for the family.
roundtrip_ok(obj, contract) parse(dumps(obj)) == obj with stable serialization.
detect_prefix(text) Prefix declared in the header, without validating.

MiniError#

Fields: code, line (1-based, 0 = document), message, field. str(e) yields E10 line 3 [level]: …. Codes are in the error index.

Lenient mode#

doc = parse(texto, c, strict=False)
doc.records          # only the valid ones, with contract types
doc.errors           # list of MiniError
doc.record_lines     # physical line of each accepted record
doc.diagnostics()    # report with the lines to regenerate (same as `mini diagnose`)