Skip to main content

chameleon-data

An interactive CLI that replaces selected columns of a CSV / TSV / XLSX file with fake data generated by Faker. The result is saved in the same format as the input.

Installation

Published on PyPI as chameleon-data. Requires Python 3.11 or later. After installation, the chameleon and chameleon-example commands are available.

uv

# Install as a global CLI tool (recommended)
uv tool install chameleon-data

# Run once without installing
uvx --from chameleon-data chameleon -f data.csv

# Add as a dependency of another project
uv add chameleon-data

# Install into the current virtual environment
uv pip install chameleon-data

Upgrade / uninstall:

uv tool upgrade chameleon-data
uv tool uninstall chameleon-data

pip

pip install chameleon-data

# Upgrade / uninstall
pip install --upgrade chameleon-data
pip uninstall chameleon-data

To use it as a standalone CLI without touching other environments, pipx works too:

pipx install chameleon-data

From GitHub (development version)

uv tool install git+https://github.com/hidariutiwa/chameleon-data
pip install git+https://github.com/hidariutiwa/chameleon-data

To pin a specific version, use git+https://github.com/hidariutiwa/chameleon-data@<tag or commit>.

Usage

chameleon -f data.csv                 # saves to data_masked.csv
chameleon -f data.xlsx -o out.xlsx    # specify the output path
chameleon -f data.tsv -l en_US -s 42  # specify locale and seed
Option Description
-f, --filepath Input file (required). .csv / .tsv / .xlsx
-o, --output Output file. Defaults to <filename>_masked.<suffix>
-l, --language Faker locale. Defaults to ja_JP
-s, --seed Random seed. Set it to get the same result every time
-v, --version Show the version

When run, you pick the columns to mask with a checkbox prompt, then choose a replacement type for each column.

Type Replacement
masking Every character becomes * (length is kept)
full_name / first_name / last_name Person name
full_address Address
zipcode Postal code
phone_number Phone number

Identical values are replaced with identical fake values, so relationships between rows are preserved. Empty cells stay empty.

Sample data

chameleon-example   # writes a sample to ./example/example.csv
chameleon -f example/example.csv

Development

Uses uv.

uv sync
uv run chameleon -f example/example.csv
uv build   # builds a wheel and sdist into dist/

Release

Pushing a v* tag triggers GitHub Actions (.github/workflows/publish.yml), which publishes to PyPI via Trusted Publishing.

uv version --bump patch   # bump the version in pyproject.toml (minor / major also work)
git commit -am "chore: release v$(uv version --short)"
git tag "v$(uv version --short)"
git push origin main --tags

License

MIT

Metadata

Release files for chameleon-data 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chameleon-data 0.2.0
File Size Uploaded Provenance
chameleon_data-0.2.0.tar.gz 6.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for chameleon-data 0.2.0
File Interpreter ABI Platform
chameleon_data-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.9 kB

Release files / chameleon_data-0.2.0.tar.gz

Download URL chameleon_data-0.2.0.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d3804b1827cb7bb6d39dcac4f4a563ab0cacb75abfdbed2a9d8847bef6bfef3d
BLAKE2b-256 checksum
How to use checksums
3db65ada15156e3262bbdc4436cf1027f2b59319178ad55a2bb05743e4d10a43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / chameleon_data-0.2.0-py3-none-any.whl

Download URL chameleon_data-0.2.0-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
40e7d1b89fb49ad372d27ac031f52ea2fcbce84af66d02a74f041b489fa27b16
BLAKE2b-256 checksum
How to use checksums
09779cdb7aa4a9b3bc34d0143b95e7bae805634f1bf134f765d589ae58ba6f8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for chameleon-data 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page