A beginner-friendly CLI for preprocessing tabular ML datasets with replayable recipes.
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, 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
- 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.
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.
Replay a saved recipe on another CSV:
wizcraft apply new-data.csv --recipe cleaned.recipe.json --out new-data-clean.csv
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.
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
Future Works
-
Advanced Data Imputation Techniques: Adding support for advanced data imputation techniques, such as K-nearest neighbours (KNN) imputation.
-
Improved UI and UX using Rich
-
Undo/Redo Option for each step
-
Extension for NLP tasks (like tokenization, stemming)
-
Recipe export so users can save and replay preprocessing steps.
-
Non-interactive CLI commands for automation and notebooks.
-
User-Friendly Interface: Improving the user interface to provide more interactive and user-friendly features, such as progress bars, error handling, and clear instructions.
-
Using Curses for terminal Manipulation.
Roadmap
WizCraft is being rebuilt around two ideas: a friendly first-time CLI and repeatable preprocessing recipes. See ROADMAP.md for the current direction and good first issue ideas.
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.2.0.tar.gz.
File metadata
- Download URL: wiz_craft-1.2.0.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ade7f64b98ea5ab64dd566750b3576fa63a34ecefce09fdd02b52a046649d711
|
|
| MD5 |
937e20dfebd82b19915a5c40cc6fb938
|
|
| BLAKE2b-256 |
7a27c1490b10b6b0be8e2b7e051748ba31fcab0eb8d41a50b5ea90c3a83ddce8
|
Provenance
The following attestation bundles were made for wiz_craft-1.2.0.tar.gz:
Publisher:
python-publish.yml on wiz-craft/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.2.0.tar.gz -
Subject digest:
ade7f64b98ea5ab64dd566750b3576fa63a34ecefce09fdd02b52a046649d711 - Sigstore transparency entry: 1953474911
- Sigstore integration time:
-
Permalink:
wiz-craft/wiz-craft@1113f6d8780412cb8634095d43f1ad2cf5b4439f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/wiz-craft
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@1113f6d8780412cb8634095d43f1ad2cf5b4439f -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file wiz_craft-1.2.0-py3-none-any.whl.
File metadata
- Download URL: wiz_craft-1.2.0-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3c105a47b4f463a7ceb4f88d6f5ac722388d185a49648218dd677f46fdd876d
|
|
| MD5 |
9037dd89c3ade13e842b43753e3fafd4
|
|
| BLAKE2b-256 |
75221b8fe6ee062007419a9adfc862f54ab7a6e46d96c9a291aeeee308013113
|
Provenance
The following attestation bundles were made for wiz_craft-1.2.0-py3-none-any.whl:
Publisher:
python-publish.yml on wiz-craft/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.2.0-py3-none-any.whl -
Subject digest:
d3c105a47b4f463a7ceb4f88d6f5ac722388d185a49648218dd677f46fdd876d - Sigstore transparency entry: 1953475057
- Sigstore integration time:
-
Permalink:
wiz-craft/wiz-craft@1113f6d8780412cb8634095d43f1ad2cf5b4439f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/wiz-craft
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@1113f6d8780412cb8634095d43f1ad2cf5b4439f -
Trigger Event:
workflow_dispatch
-
Statement type: