Snowfakery

4.2.1 · active · verified Fri Apr 17

Snowfakery is a Python tool for generating fake data models with relational integrity. It allows users to define complex data structures, including relationships between 'tables' (objects), using YAML configuration. Each generated record is unique and random. Currently at version 4.2.1, it maintains an active development pace with frequent minor releases and occasional major updates addressing Python compatibility and core feature enhancements.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to programmatically use Snowfakery to generate JSON data based on a YAML data model. It uses `io.StringIO` to avoid creating temporary files, making it suitable for in-memory execution.

import io
from snowfakery.api import generate_data

# Define a simple Snowfakery data model in YAML
data_model_yaml = """
- object: Contact
  count: 2
  fields:
    FirstName:
      random_first_name: {}
    LastName:
      random_last_name: {}
    Email:
      formula: f"{FirstName}.{LastName}@example.com"
"""

# Use io.StringIO to simulate file input and output for a quick example
input_stream = io.StringIO(data_model_yaml)
output_stream = io.StringIO()

# Generate data
generate_data(
    yaml_file=input_stream,
    output_format="json", # or "csv", "sqlite", "sql", "db"
    output_file=output_stream
)

# Print the generated JSON data
print(output_stream.getvalue())

view raw JSON →