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.1.2

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.1.2
File Size Uploaded Provenance
chameleon_data-0.1.2.tar.gz 5.3 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 11.7 kB

Release files / chameleon_data-0.1.2.tar.gz

Download URL chameleon_data-0.1.2.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fe1319372639aca85fd9420af1f61f25661f2e3324e51f640d7a1fc5e5fa0f87
BLAKE2b-256 checksum
How to use checksums
bdd40120c54e5d9cc25650aa0e75b4058aee8e7b5f5730cc08b6f2e8c9e51341
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.1.2-py3-none-any.whl

Download URL chameleon_data-0.1.2-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e2074f7cc1d915141e74d16b7cc672c3f021ed96e35415885d00637476f3cb5
BLAKE2b-256 checksum
How to use checksums
5ba05628f7dd54d7b81eb8f8b4215f94ec0c62c345bdd9fe3fa7497e2d3874d4
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.1.2

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