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 Command Line Interface (CLI) tool for preparing tabular datasets for machine learning. It helps you inspect a CSV, diagnose data quality issues, handle missing values, encode categorical columns, scale numeric features, save a cleaned dataset, and export replayable preprocessing recipes.

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.

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.

Audit a dataset and generate a suggested recipe:

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

Export the same audit as JSON or HTML:

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

Replay a saved recipe on another CSV:

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

wizcraft-cli_welcome

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

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.3.1.tar.gz (24.4 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.3.1-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wiz_craft-1.3.1.tar.gz
  • Upload date:
  • Size: 24.4 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.3.1.tar.gz
Algorithm Hash digest
SHA256 3b43411bf495df095629a7f377352004cd45c124ee4bc232bcc192ec56a6543e
MD5 1813d5166f1740a8ded6a9019fd9f5ba
BLAKE2b-256 cb51afdce629dca4443ec76ed3b670fcb438b4f0e9117cacd810e0efe5a6d4e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for wiz_craft-1.3.1.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.3.1-py3-none-any.whl.

File metadata

  • Download URL: wiz_craft-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 23.2 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6983af9ae8ccb21caaaf2a1f5bc400b485b836d994a32fe27b76628091c8c982
MD5 7e85d75c78dee54413234e1ec644d245
BLAKE2b-256 cdc5a4a3bc13ad7c640b25282d5096c79b1ce6ea33480eb93b277cf2403f9e06

See more details on using hashes here.

Provenance

The following attestation bundles were made for wiz_craft-1.3.1-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