Skip to main content

A beginner-friendly CLI for auditing and preprocessing tabular ML datasets.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wiz_craft-1.4.0.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wiz_craft-1.4.0-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file wiz_craft-1.4.0.tar.gz.

File metadata

  • Download URL: wiz_craft-1.4.0.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for wiz_craft-1.4.0.tar.gz
Algorithm Hash digest
SHA256 96fe4ec933200a3a151df7c04caa9a13960c85586c948709b69d21ac1e20be42
MD5 d8a3af33f6dd30616cb714d11c219c34
BLAKE2b-256 daca53f149bc2da7a0bfcb7f750bd581eb80892a3c9a014f1912dc13ca1ffdca

See more details on using hashes here.

Provenance

The following attestation bundles were made for wiz_craft-1.4.0.tar.gz:

Publisher: python-publish.yml on Pinak-Datta/wiz-craft

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wiz_craft-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: wiz_craft-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for wiz_craft-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4819281104edeb4e9cf384176e55f7de17262d5dc6b84fb0a264ad056ccb6115
MD5 80851dca86de609e813040359e0e2097
BLAKE2b-256 351e7df76324cead0cc8581b4e77ab14a2a0242ccf04fdb54fb8da24b0f9b199

See more details on using hashes here.

Provenance

The following attestation bundles were made for wiz_craft-1.4.0-py3-none-any.whl:

Publisher: python-publish.yml on Pinak-Datta/wiz-craft

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page