Repository navigation
Releases: aborruso/fauxdata
Releases · aborruso/fauxdata
Release list
v0.2.1
Patch release.
- Requires
pointblank>=1.1.0. The two issues we reported upstream are fixed there:unique: trueis now enforced on coherent presets such asname,emailandcity(posit-dev/pointblank#441), andget_dataframe_report()works with multi-column steps (posit-dev/pointblank#442). - The "known limit" about
uniqueon presets is removed from thefauxdata agentguide. - 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 andpyproject.toml. - README: links to the bundled example schemas.
v0.2.0
Highlights
- Agent-friendly CLI: new
fauxdata agentcommand prints a Markdown guide for AI agents (workflow, schema format, types, presets, rules, JSON output, exit codes, example).generate,validate,inferandpreviewaccept--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,minand/ormax).inferemits it for free-text string columns. - Native float
precision: rounding never pushes values outsidemin/max(bounds are moved inward to the precision grid) anduniquecolumns stay unique after rounding. Clear error when no value fits the range.
Fixes
infer --categorical-thresholdfrom the CLI was read as a fraction of rows, so every non-preset string column became categorical and its real values were copied intovalues:. Whole numbers are now counts.- Value rules (
col_vals_between,gt/lt/ge/le,regex,in_set) no longer count nulls as failures; usecol_vals_not_nullto forbid nulls. valuesonint/floatcolumns is now honored by the generator (previously ignored, breaking infer round-trips).rows_distinctno 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 RUNin the table) instead of passing with 0 rows.
Behavior changes
- Value rules ignore nulls.
rows_distincttotals count only rows with non-null keys.--categorical-threshold Nwith a whole number is a count of distinct values (1means one value, not 100%).- Float columns with
precisionand bounds that have more decimals thanprecisiongenerate 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)
unique: trueis not enforced on coherent presets such asemail,name,city(posit-dev/pointblank#441).
Closes #1.
v0.1.6
Fix
- float
precisionapplied at generation time (#2):floatcolumns with aprecisionset 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
- Upstream feature request for native support: posit-dev/pointblank#410
- PyPI: https://pypi.org/project/fauxdata-cli/0.1.6/
v0.1.5
What's new
fauxdata infer DATASET: build a YAML schema from a real table (csv/parquet/json/jsonl) via pointblankschema_from_tbl— inferred ranges, categorical value sets, string presets (email/url/…), uniqueness, null rates, and string lengths, plus matchingvalidation:rules. Feed the result tofauxdata generatefor 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_lengthschema fields (faithful round-trip), passed through to generation. inferon CSV usestry_parse_datesso date/datetime columns are typed, not frozen as categorical strings.generateraises 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-thresholdfor sensitive columns. - A column inferred as
uniqueover a narrow integer range cannot be amplified far beyond the source size.
Breaking changes
- None.
Installation
uv tool install fauxdata-cli==0.1.5Full changelog: https://github.com/aborruso/fauxdata/commits/v0.1.5
v0.1.4
What's new
initnon-interactive:--description,--rows,--format,--yesflags; questionary prompts are now fallback when flags are omittedgenerate --dry-run: preview what would be generated (schema, rows, seed, output path) without writing any file- Structured output on success:
generateprintsoutput_path,format,rowsas key: value;initprintsschema_path - Examples in
--help: every subcommand has anepilogwith 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
What's new
Bug fix
- The Python Versions badge (
shields.io/pypi/pyversions) was blank becausepyproject.tomllackedclassifiers. Added:Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13License :: 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.3Full changelog: https://github.com/aborruso/fauxdata/commits/v0.1.3
v0.1.2 — Tests, pattern generation, null_probability, --version
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 pointblankcode: type: string pattern: "[A-Z]{2}[0-9]{4}"
null_probability: fractional null control, replaces the binarynullable: trueAccepts values inscore: type: float null_probability: 0.15 # ~15% of values will be null
[0.0, 1.0]— validated at schema parse time.
CLI
fauxdata --version/fauxdata -Vnow works
Internals
- Removed unused
fakerdependency (pointblank handles everything) - Added
docs/deployment.mdwith the release workflow
Installation
pip install fauxdata-cli==0.1.2
# or
uv add fauxdata-cli==0.1.2Full changelog: https://github.com/aborruso/fauxdata/commits/v0.1.2