A beginner-friendly CLI for auditing and preprocessing tabular ML datasets.
Project description
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.
Check out the Contribution Guide if you want to contribute to this project
Table of Contents
- Features
- Getting Started
- Dataset Doctor
- Tasks
- Replayable Recipes
- Roadmap
- Contributing to the Project
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
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
- View statistics and properties of numeric columns.
- Explore unique values and statistics of categorical columns.
- Display a snapshot of the dataset.
Handle Null Values
- Show NULL value counts in each column.
- Remove specific columns or fill NULL values with mean, median, mode, or K-nearest neighbors.
Encode Categorical Values
- Identify and list categorical columns.
- Perform one-hot encoding on categorical columns.
- Skip text-heavy columns such as reviews, comments, notes, feedback, messages, and descriptions so they can be handled with NLP-specific preprocessing.
Feature Scaling
- Normalize (Min-Max scaling) or standardize (Standard Scaler) numerical columns.
Save Preprocessed Dataset
- Download the modified dataset with applied preprocessing steps.
- Save a replayable
.recipe.jsonfile 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b43411bf495df095629a7f377352004cd45c124ee4bc232bcc192ec56a6543e
|
|
| MD5 |
1813d5166f1740a8ded6a9019fd9f5ba
|
|
| BLAKE2b-256 |
cb51afdce629dca4443ec76ed3b670fcb438b4f0e9117cacd810e0efe5a6d4e2
|
Provenance
The following attestation bundles were made for wiz_craft-1.3.1.tar.gz:
Publisher:
python-publish.yml on Pinak-Datta/wiz-craft
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wiz_craft-1.3.1.tar.gz -
Subject digest:
3b43411bf495df095629a7f377352004cd45c124ee4bc232bcc192ec56a6543e - Sigstore transparency entry: 2205021021
- Sigstore integration time:
-
Permalink:
Pinak-Datta/wiz-craft@e69c4f6b90bac660b1795180fd5bd41eb1c6d58f -
Branch / Tag:
refs/tags/v1.3.1 - Owner: https://github.com/Pinak-Datta
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e69c4f6b90bac660b1795180fd5bd41eb1c6d58f -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6983af9ae8ccb21caaaf2a1f5bc400b485b836d994a32fe27b76628091c8c982
|
|
| MD5 |
7e85d75c78dee54413234e1ec644d245
|
|
| BLAKE2b-256 |
cdc5a4a3bc13ad7c640b25282d5096c79b1ce6ea33480eb93b277cf2403f9e06
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wiz_craft-1.3.1-py3-none-any.whl -
Subject digest:
6983af9ae8ccb21caaaf2a1f5bc400b485b836d994a32fe27b76628091c8c982 - Sigstore transparency entry: 2205021046
- Sigstore integration time:
-
Permalink:
Pinak-Datta/wiz-craft@e69c4f6b90bac660b1795180fd5bd41eb1c6d58f -
Branch / Tag:
refs/tags/v1.3.1 - Owner: https://github.com/Pinak-Datta
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e69c4f6b90bac660b1795180fd5bd41eb1c6d58f -
Trigger Event:
release
-
Statement type: