Skip to content

v0.7.0

Choose a tag to compare

@rasinmuhammed rasinmuhammed released this 14 Apr 05:19
· 114 commits to main since this release

What's new in 0.7.0

Document generation

Generate real documents (HTML, PDF, Markdown) from any table, one file per row.

tables = misata.generate("An ecommerce store with 200 orders")
paths = misata.generate_documents(tables, "invoice", output_dir="/tmp/invoices")

Built-in templates: invoice, patient_report, user_profile, transaction_receipt, generic. Auto-detects the right template from column names with template="auto". PDF output via pip install "misata[documents]".

Multi-provider LLM

LLMSchemaGenerator now supports OpenAI, Groq, Anthropic (native SDK), Gemini, and Ollama, pick the one you have a key for.

Custom callable generators

Override any column with a Python function, vectorized or per-row:

tables = misata.generate_from_schema(schema, custom_generators={
    "orders": {"amount": lambda df, ctx: df["plan"].map({"pro": 99, "free": 0})}
})

Schema import + FK integrity

misata.from_dict_schema() converts any {table: {col: {type, ...}}} dict to a SchemaConfig. misata.verify_integrity() checks FK relationships post-generation.

Kaggle vocabulary enrichment

misata.enrich_from_kaggle("ecommerce") downloads CC0 datasets and stores real-world vocabulary locally — names, companies, cities — used automatically in all subsequent generation calls.

Other additions

  • generate_more(tables, schema, n) : append rows without regenerating from scratch
  • Domain-aware text by default : no more lorem-ipsum for name/email/company columns
  • Fixed: country columns, duplicate emails on small datasets, unique IDs

Full changelog: CHANGELOG.md