docs / Biblioteca Python

Biblioteca Python (minifmt 1.0.0)#

Implementación de referencia. Sin dependencias en tiempo de ejecución; tiktoken es opcional para contar tokens.

API pública#

from minifmt import (Contract, Field, MiniError, MiniValidationError, Document,
                     parse, dumps, detect_prefix, Registry, spec_block, parser_prompt,
                     canonical_equal, roundtrip_ok, __version__, SPEC_VERSION)
Función Qué hace
Registry.load(dir=…) Descubre forks/*/contract.json; reg.get("a") devuelve el Contract.
parse(text, contract, strict=True) Analiza y valida. Estricto: lanza MiniValidationError con todos los errores. Tolerante (strict=False): devuelve Document con records válidos y errors.
Document.to_canonical() JSON canónico: {"prefix", "header", "<records_key>": [...]}.
dumps(obj, contract) Canónico → .mini.
spec_block(contract, lang="en"|"es") Bloque de especificación para el prompt del modelo.
parser_prompt(contract, fixtures, lang) Prompt para que un modelo escriba un parser de la familia.
roundtrip_ok(obj, contract) parse(dumps(obj)) == obj y serialización estable.
detect_prefix(text) Prefijo declarado en la cabecera, sin validar.

MiniError#

Campos: code, line (1-based, 0 = documento), message, field. str(e) produce E10 line 3 [level]: …. Los códigos están en el índice de errores.

Modo tolerante#

doc = parse(texto, c, strict=False)
doc.records          # solo los válidos, con tipos del contrato
doc.errors           # lista de MiniError
doc.record_lines     # línea física de cada registro aceptado
doc.diagnostics()    # informe con las líneas a regenerar (mismo que `mini diagnose`)