Skip to content

Releases: aborruso/fauxdata

v0.2.1

Choose a tag to compare

@aborruso aborruso released this 17 Oct 07:43

Patch release.

  • Requires pointblank>=1.1.0. The two issues we reported upstream are fixed there: unique: true is now enforced on coherent presets such as name, email and city (posit-dev/pointblank#441), and get_dataframe_report() works with multi-column steps (posit-dev/pointblank#442).
  • The "known limit" about unique on presets is removed from the fauxdata agent guide.
  • Fewer dependencies: pointblank 1.1 no longer pulls in anthropic[bedrock], so about 20 transitive packages (anthropic, boto3, pydantic, ...) are no longer installed.
  • The source distribution now ships only src, tests, schemas, README, LICENSE and pyproject.toml.
  • README: links to the bundled example schemas.

v0.2.0

Choose a tag to compare

@aborruso aborruso released this 11 Oct 09:01

Highlights

  • Agent-friendly CLI: new fauxdata agent command prints a Markdown guide for AI agents (workflow, schema format, types, presets, rules, JSON output, exit codes, example). generate, validate, infer and preview accept --json: stdout carries a single JSON object, errors come back as {"error": "..."} with exit code 1.
  • pointblank 1.0.1: minimum version raised from 0.25 (also brings Polars 2.0 compatibility).
  • New validation rule col_vals_str_len (column, min and/or max). infer emits it for free-text string columns.
  • Native float precision: rounding never pushes values outside min/max (bounds are moved inward to the precision grid) and unique columns stay unique after rounding. Clear error when no value fits the range.

Fixes

  • infer --categorical-threshold from the CLI was read as a fraction of rows, so every non-preset string column became categorical and its real values were copied into values:. Whole numbers are now counts.
  • Value rules (col_vals_between, gt/lt/ge/le, regex, in_set) no longer count nulls as failures; use col_vals_not_null to forbid nulls.
  • values on int/float columns is now honored by the generator (previously ignored, breaking infer round-trips).
  • rows_distinct no longer treats null keys as duplicates of each other.
  • A validation step on a column missing from the data is now reported as not evaluated ("evaluated": false, NOT RUN in the table) instead of passing with 0 rows.

Behavior changes

  • Value rules ignore nulls.
  • rows_distinct totals count only rows with non-null keys.
  • --categorical-threshold N with a whole number is a count of distinct values (1 means one value, not 100%).
  • Float columns with precision and bounds that have more decimals than precision generate slightly narrower ranges than 0.1.6.
  • pointblank now requires anthropic[bedrock], so installing fauxdata pulls in about 20 extra packages that fauxdata does not use.

Known limitations (upstream)

Closes #1.

v0.1.6

Choose a tag to compare

@aborruso aborruso released this 05 Jul 06:56

Fix

  • float precision applied at generation time (#2): float columns with a precision set are now rounded to the requested number of decimals (pointblank has no native parameter → rounding is done right after generation, preserving min/max/unique/nullable handling).

Notes

v0.1.5

Choose a tag to compare

@aborruso aborruso released this 12 Jun 17:48

What's new

  • fauxdata infer DATASET: build a YAML schema from a real table (csv/parquet/json/jsonl) via pointblank schema_from_tbl — inferred ranges, categorical value sets, string presets (email/url/…), uniqueness, null rates, and string lengths, plus matching validation: rules. Feed the result to fauxdata generate for synthetic data that mirrors the real shape without shipping real values. Flags: --out/-o, --name/-n, --rows/-r, --format/-f, --categorical-threshold, --detect-presets/--no-detect-presets, --sample-size.
  • String length: new min_length/max_length schema fields (faithful round-trip), passed through to generation.
  • infer on CSV uses try_parse_dates so date/datetime columns are typed, not frozen as categorical strings.
  • generate raises a clear error on the unique + narrow-range conflict (amplifying a unique integer column beyond its range) instead of pointblank's cryptic message.

Dependencies

  • Requires pointblank>=0.25.

Known limits

  • Low-cardinality columns are frozen to their exact source values (values:) — raise --categorical-threshold for sensitive columns.
  • A column inferred as unique over a narrow integer range cannot be amplified far beyond the source size.

Breaking changes

  • None.

Installation

uv tool install fauxdata-cli==0.1.5

Full changelog: https://github.com/aborruso/fauxdata/commits/v0.1.5

v0.1.4

Choose a tag to compare

@aborruso aborruso released this 06 Apr 08:55

What's new

  • init non-interactive: --description, --rows, --format, --yes flags; questionary prompts are now fallback when flags are omitted
  • generate --dry-run: preview what would be generated (schema, rows, seed, output path) without writing any file
  • Structured output on success: generate prints output_path, format, rows as key: value; init prints schema_path
  • Examples in --help: every subcommand has an epilog with 2–4 concrete examples

Breaking changes

None.

Installation

```bash
pip install fauxdata-cli==0.1.4
```

Full changelog: https://github.com/aborruso/fauxdata/commits/v0.1.4

v0.1.3 — Python version badge fix

Choose a tag to compare

@aborruso aborruso released this 06 Mar 20:26

What's new

Bug fix

  • The Python Versions badge (shields.io/pypi/pyversions) was blank because pyproject.toml lacked classifiers. Added:
    • Programming Language :: Python :: 3.11
    • Programming Language :: Python :: 3.12
    • Programming Language :: Python :: 3.13
    • License :: OSI Approved :: MIT License

Internal

  • Version tests now read __version__ dynamically — no more hardcoded version strings in the test suite

Installation

pip install fauxdata-cli==0.1.3

Full changelog: https://github.com/aborruso/fauxdata/commits/v0.1.3

v0.1.2 — Tests, pattern generation, null_probability, --version

Choose a tag to compare

@aborruso aborruso released this 06 Mar 20:23

What's new

Test suite

  • 79 tests, 84% coverage, threshold enforced at 80% via pytest-cov
  • Covers schema parsing, generation, validation, output formats, and CLI end-to-end
  • Run with uv run pytest

New schema fields

  • pattern (string columns): generate values matching a regex via pointblank
    code:
      type: string
      pattern: "[A-Z]{2}[0-9]{4}"
  • null_probability: fractional null control, replaces the binary nullable: true
    score:
      type: float
      null_probability: 0.15   # ~15% of values will be null
    Accepts values in [0.0, 1.0] — validated at schema parse time.

CLI

  • fauxdata --version / fauxdata -V now works

Internals

  • Removed unused faker dependency (pointblank handles everything)
  • Added docs/deployment.md with the release workflow

Installation

pip install fauxdata-cli==0.1.2
# or
uv add fauxdata-cli==0.1.2

Full changelog: https://github.com/aborruso/fauxdata/commits/v0.1.2