Skip to main content

wizcraft-banner

WizCraft - CLI tool that simplifies the process of data pre-processing | Product Hunt

License CI

Downloads

PyPI - Version

WizCraft - CLI-Based Dataset Preprocessing Tool

WizCraft is a beginner-friendly CLI that audits messy CSV files, explains what needs attention, and creates repeatable preprocessing recipes for machine-learning workflows.

Use it when you want to:

  • Check a dataset before modeling.
  • Spot missing values, IDs, text-heavy columns, date columns, outliers, duplicates, leakage risks, and target imbalance.
  • Export a report as terminal output, JSON, HTML, or Markdown.
  • Save safe preprocessing steps as a recipe and replay them on future CSV files.

60-Second Quickstart

pip install wiz-craft
wizcraft sample titanic --out titanic.csv
wizcraft doctor titanic.csv --target Survived --write-recipe titanic.recipe.json --markdown titanic-report.md
wizcraft apply titanic.csv --recipe titanic.recipe.json --out titanic-clean.csv

That creates a sample dataset, audits it, writes a Markdown report, saves a preprocessing recipe, and applies the recipe to create a cleaned CSV.

Try the tool online here

Check out the Contribution Guide if you want to contribute to this project

Table of Contents

Features

  • Load and preprocess your dataset effortlessly through a Command Line Interface (CLI).
  • View dataset statistics, null value counts, and perform data imputation.
  • Encode categorical variables using one-hot encoding.
  • Normalize and standardize numerical features for better model performance.
  • Download the preprocessed dataset with your desired modifications.
  • Save preprocessing recipes and replay them on future CSV files.
  • Audit datasets with wizcraft doctor, detect modeling risks, and generate suggested cleaning recipes.
  • Detect free-form text columns so review, feedback, comment, notes, and description fields are not treated like ordinary categorical values.
  • Create bundled demo CSVs with wizcraft sample.
  • Export Dataset Doctor reports as terminal output, JSON, HTML, or Markdown.

Getting Started

Installation

Install WizCraft from PyPI:

pip install wiz-craft

Start the interactive CLI with a CSV file:

wizcraft dataset.csv

You can also launch WizCraft and choose a CSV from the current directory:

wizcraft

WizCraft can still be used from Python:

from wizcraft.preprocess import Preprocess

wiz_obj = Preprocess(csv_file="dataset.csv")
wiz_obj.start()

Follow the on-screen prompts to select the target variable and perform preprocessing tasks.

Create a sample CSV:

wizcraft sample customers --out customers.csv

Audit a dataset and generate a suggested recipe:

wizcraft doctor train.csv --target Survived --write-recipe recipe.json

Export the same audit as JSON, HTML, or Markdown:

wizcraft doctor train.csv --target Survived --json report.json --html report.html --markdown report.md

Replay a saved recipe on another CSV:

wizcraft apply new-data.csv --recipe cleaned.recipe.json --out new-data-clean.csv

wizcraft-cli_welcome

Sample Datasets

WizCraft ships with small demo datasets so new users can try the CLI immediately:

wizcraft sample
wizcraft sample titanic --out titanic.csv
wizcraft sample customers --out customers.csv

Available samples:

  • titanic: passenger survival dataset with missing values, duplicates, outliers, categorical columns, and review text.
  • customers: customer churn dataset with IDs, dates, missing values, text feedback, outliers, and categorical columns.

Dataset Doctor

wizcraft doctor audits a CSV and surfaces common machine-learning data quality issues before you start modeling:

wizcraft doctor train.csv --target Survived

The doctor currently checks for:

  • Column types, including numeric, categorical, datetime, text-like, ID-like, and mostly-empty columns
  • Missing values
  • Duplicate rows
  • ID-like columns
  • Constant and near-constant columns
  • Text-heavy columns that should use NLP preprocessing instead of one-hot encoding
  • Categorical columns that need encoding, while skipping columns detected as free-form text
  • Date/datetime columns that may need feature extraction
  • Numeric outliers using the IQR rule
  • Imbalanced target columns
  • Likely modeling task: binary classification, multiclass classification, or regression
  • Possible target leakage from suspicious names or highly target-correlated numeric columns

You can write a suggested recipe and apply it later:

wizcraft doctor train.csv --target Survived --write-recipe recipe.json
wizcraft apply train.csv --recipe recipe.json --out train-clean.csv

You can also use Doctor output in automation:

wizcraft doctor train.csv --target Survived --format json
wizcraft doctor train.csv --target Survived --html report.html
wizcraft doctor train.csv --target Survived --markdown report.md

Features Available

Data Description

data_description_preview

  1. View statistics and properties of numeric columns.
  2. Explore unique values and statistics of categorical columns.
  3. Display a snapshot of the dataset.

Handle Null Values

null_data_preview

  1. Show NULL value counts in each column.
  2. Remove specific columns or fill NULL values with mean, median, mode, or K-nearest neighbors.

Encode Categorical Values

one_hot_encode_preview

  1. Identify and list categorical columns.
  2. Perform one-hot encoding on categorical columns.
  3. Skip text-heavy columns such as reviews, comments, notes, feedback, messages, and descriptions so they can be handled with NLP-specific preprocessing.

Feature Scaling

scaling_preview

  1. Normalize (Min-Max scaling) or standardize (Standard Scaler) numerical columns.

Save Preprocessed Dataset

save_preview

  1. Download the modified dataset with applied preprocessing steps.
  2. Save a replayable .recipe.json file for the same preprocessing flow.

Replayable Recipes

WizCraft can now save the preprocessing steps you perform interactively. A recipe is a small JSON file that can be applied again later:

wizcraft apply raw-data.csv --recipe cleaned.recipe.json --out cleaned-data.csv

Recipes currently support:

  • Removing columns
  • Filling null values with mean, median, mode, or K-nearest neighbors
  • One-hot encoding categorical columns
  • Normalizing or standardizing numeric columns

Roadmap

WizCraft is being rebuilt around three ideas: a friendly first-time CLI, dataset health checks, and repeatable preprocessing recipes.

Current priorities:

  • Non-interactive commands for automation and notebooks.
  • Exportable scikit-learn preprocessing pipelines.
  • Cleaner terminal tables, validation, and error messages.
  • Example datasets, tutorials, and good first issues for new contributors.

See ROADMAP.md for the full direction.

Contributing to the Project

Check out the Contribution Guide if you want to contribute to this project

Release files for wiz-craft 1.4.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 wiz-craft 1.4.0
File Size Uploaded
wiz_craft-1.4.0.tar.gz 29.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wiz-craft 1.4.0
File Interpreter ABI Platform
wiz_craft-1.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 56.1 kB

Release files / wiz_craft-1.4.0.tar.gz

Download URL wiz_craft-1.4.0.tar.gz
Size 29.0 kB
Tags Source
SHA-256 checksum
How to use checksums
96fe4ec933200a3a151df7c04caa9a13960c85586c948709b69d21ac1e20be42
BLAKE2b-256 checksum
How to use checksums
daca53f149bc2da7a0bfcb7f750bd581eb80892a3c9a014f1912dc13ca1ffdca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release files / wiz_craft-1.4.0-py3-none-any.whl

Download URL wiz_craft-1.4.0-py3-none-any.whl
Size 27.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4819281104edeb4e9cf384176e55f7de17262d5dc6b84fb0a264ad056ccb6115
BLAKE2b-256 checksum
How to use checksums
351e7df76324cead0cc8581b4e77ab14a2a0242ccf04fdb54fb8da24b0f9b199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files

1.3.1

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

0.0.1

2 release files

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