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`)