Skip to content

GoldenFlow

Ben Severn edited this page May 1, 2026 · 1 revision

GoldenFlow

Data-transformation toolkit for the Golden Suite. 76+ standardizers across phone, name, address, date, categorical, numeric, email, identifier, and URL families. DQBench Transform Score: 100/100.

Source: packages/python/goldenflow · PyPI: goldenflow · npm: goldenflow

Install

pip install goldenflow
goldenflow transform customers.csv

What it does

Polars-native transforms with a hybrid expr / series / dataframe mode system. Every transform self-registers via @register_transform and is selected automatically when GoldenCheck flags a corresponding issue.

Family Examples
Text strip, lowercase, title_case, normalize_unicode, collapse_whitespace, truncate
Phone phone_e164, phone_national, phone_validate
Name split_name, name_proper, nickname_standardize
Address address_standardize, state_abbreviate, zip_normalize
Date date_iso8601, date_parse, age_from_dob, extract_year/month/day
Categorical category_auto_correct, boolean_normalize, gender_standardize
Numeric currency_strip, percentage_normalize, comma_decimal
Email email_lowercase, email_normalize, email_validate
Identifiers ssn_format, ssn_mask, ein_format
URL url_normalize, url_extract_domain

Plus 5 domain packs (people_hr, healthcare, finance, ecommerce, real_estate) that bundle field-aware transforms.

Programmatic API

import goldenflow
import polars as pl

# Zero-config (auto-detect + auto-apply)
df = pl.read_csv("customers.csv", encoding="utf8-lossy")
result = goldenflow.transform_df(df)
cleaned = result.df
print(f"applied {len(result.manifest.records)} transforms")

# Configured
from goldenflow.config.schema import GoldenFlowConfig, TransformSpec
config = GoldenFlowConfig(transforms=[
    TransformSpec(column="phone", ops=["strip", "phone_e164"]),
    TransformSpec(column="name",  ops=["strip", "title_case"]),
])
result = goldenflow.transform_df(df, config=config)

result.manifest audits every transform: column, transform name, rows affected, before/after samples.

Suite role

GoldenCheck findings ──► select_from_findings ──► [GoldenFlow] ──► cleaned df ──► GoldenMatch

GoldenFlow's select_from_findings(findings) maps GoldenCheck check names (e.g. whitespace_issues) to the right transform names — so the natural pipeline is just "scan, then auto-select".

CLI

goldenflow transform FILE                       # zero-config
goldenflow transform FILE --config flow.yaml    # configured
goldenflow transform FILE --domain healthcare   # use a domain pack
goldenflow transform FILE --strict              # fail on any error
goldenflow transform FILE --llm                 # LLM-enhanced categorical correction
goldenflow profile FILE                         # show column profiles
goldenflow learn FILE -o config.yaml            # generate config from data
goldenflow validate FILE                        # dry-run: show what would change
goldenflow diff before.csv after.csv            # before/after report
goldenflow stream large.csv                     # batched, out-of-core
goldenflow watch ./data/                        # auto-transform on new files
goldenflow mcp-serve --transport http --port 8150  # MCP server

MCP

ghcr.io/benzsevern/goldenflow-mcp:latest. 10 tools: transform, map, profile, learn, diff, validate, list_transforms, explain_transform, list_domains, select_from_findings. Surfaced under the goldensuite-mcp aggregator.

TypeScript port

Full feature parity. 71 vitest tests, strict TS (noUncheckedIndexedAccess, exactOptionalPropertyTypes). Edge-safe core (goldenflow/core) + Node layer (goldenflow/node).

See also

GoldenMatch

PyPI npm

🟡 Golden Suite (Monorepo)

Suite Packages

Getting Started

Core Concepts

AI Integration

Advanced

Reference


pip install goldenmatch
npm install goldenmatch

Clone this wiki locally