Skip to content

v0.2.0

Choose a tag to compare

@aborruso aborruso released this 11 Oct 09:01
· 9 commits to main since this release

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.