{"id":51629690,"url":"https://github.com/pinak-datta/wiz-craft","last_synced_at":"2026-07-13T06:00:57.712Z","repository":{"id":186458174,"uuid":"675176861","full_name":"Pinak-Datta/wiz-craft","owner":"Pinak-Datta","description":"A CLI-based dataset preprocessing tool for machine learning tasks. Features include data exploration, null value handling, one-hot encoding, and feature scaling, and download the modified dataset effortlessly.","archived":false,"fork":false,"pushed_at":"2026-06-25T14:48:14.000Z","size":96,"stargazers_count":16,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-25T16:06:21.928Z","etag":null,"topics":["cli","cli-app","dataset","machine-learning","preprocessing"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/wiz-craft/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pinak-Datta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-06T03:36:00.000Z","updated_at":"2026-06-25T14:48:23.000Z","dependencies_parsed_at":"2023-10-12T15:35:46.141Z","dependency_job_id":"3bcc1286-eff7-48d9-af4a-98794d9ea6a9","html_url":"https://github.com/Pinak-Datta/wiz-craft","commit_stats":{"total_commits":33,"total_committers":5,"mean_commits":6.6,"dds":0.4545454545454546,"last_synced_commit":"013f34205f2098b1883882fd40851c7ddc21b79e"},"previous_names":["pinak-datta/wiz-craft"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Pinak-Datta/wiz-craft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pinak-Datta%2Fwiz-craft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pinak-Datta%2Fwiz-craft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pinak-Datta%2Fwiz-craft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pinak-Datta%2Fwiz-craft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pinak-Datta","download_url":"https://codeload.github.com/Pinak-Datta/wiz-craft/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pinak-Datta%2Fwiz-craft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35412247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cli-app","dataset","machine-learning","preprocessing"],"created_at":"2026-07-13T06:00:32.580Z","updated_at":"2026-07-13T06:00:57.697Z","avatar_url":"https://github.com/Pinak-Datta.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://svgshare.com/i/wCo.svg\" alt=\"wizcraft-banner\" /\u003e\n  \n\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.producthunt.com/posts/wizcraft?utm_source=badge-featured\u0026utm_medium=badge\u0026utm_souce=badge-wizcraft\" target=\"_blank\"\u003e\u003cimg src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=410900\u0026theme=light\" alt=\"WizCraft - CLI\u0026#0032;tool\u0026#0032;that\u0026#0032;simplifies\u0026#0032;the\u0026#0032;process\u0026#0032;of\u0026#0032;data\u0026#0032;pre\u0026#0045;processing | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) \n[![CI](https://github.com/Pinak-Datta/wiz-craft/actions/workflows/ci.yml/badge.svg)](https://github.com/Pinak-Datta/wiz-craft/actions/workflows/ci.yml)\n\n[![Downloads](https://static.pepy.tech/personalized-badge/wiz-craft?period=total\u0026units=international_system\u0026left_color=brightgreen\u0026right_color=orange\u0026left_text=Downloads)](https://pepy.tech/project/wiz-craft)\n\n![PyPI - Version](https://img.shields.io/pypi/v/wiz-craft)\n\n\n# WizCraft - CLI-Based Dataset Preprocessing Tool\n\nWizCraft 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.\n\n**[Try the tool online here](https://replit.com/@PinakDatta/DataWiz)**\n\n**Check out the [Contribution Guide](https://github.com/Pinak-Datta/wiz-craft/blob/main/CONTRIBUTING.md) if you want to contribute to this project**\n\n## Table of Contents\n\n- [Features](#features)\n- [Getting Started](#getting-started)\n  - [Installation](#installation)\n- [Dataset Doctor](#dataset-doctor)\n- [Tasks](#tasks)\n  - [Data Description](#data-description)\n  - [Handle Null Values](#handle-null-values)\n  - [Encode Categorical Values](#encode-categorical-values)\n  - [Feature Scaling](#feature-scaling)\n  - [Save Preprocessed Dataset](#save-preprocessed-dataset)\n- [Replayable Recipes](#replayable-recipes)\n- [Roadmap](#roadmap)\n- [Contributing to the Project](#contribute-to-the-project)\n\n\n\n## Features\n\n- Load and preprocess your dataset effortlessly through a Command Line Interface (CLI).\n- View dataset statistics, null value counts, and perform data imputation.\n- Encode categorical variables using one-hot encoding.\n- Normalize and standardize numerical features for better model performance.\n- Download the preprocessed dataset with your desired modifications.\n- Save preprocessing recipes and replay them on future CSV files.\n- Audit datasets with `wizcraft doctor`, detect modeling risks, and generate suggested cleaning recipes.\n\n## Getting Started\n\n### Installation\n\nInstall WizCraft from PyPI:\n\n```bash\npip install wiz-craft\n```\n\nStart the interactive CLI with a CSV file:\n\n```bash\nwizcraft dataset.csv\n```\n\nYou can also launch WizCraft and choose a CSV from the current directory:\n\n```bash\nwizcraft\n```\n\nWizCraft can still be used from Python:\n\n```python\nfrom wizcraft.preprocess import Preprocess\n\nwiz_obj = Preprocess(csv_file=\"dataset.csv\")\nwiz_obj.start()\n```\n\nFollow the on-screen prompts to select the target variable and perform preprocessing tasks.\n\nAudit a dataset and generate a suggested recipe:\n\n```bash\nwizcraft doctor train.csv --target Survived --write-recipe recipe.json\n```\n\nExport the same audit as JSON or HTML:\n\n```bash\nwizcraft doctor train.csv --target Survived --json report.json --html report.html\n```\n\nReplay a saved recipe on another CSV:\n\n```bash\nwizcraft apply new-data.csv --recipe cleaned.recipe.json --out new-data-clean.csv\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/jYLwMN7.png\" alt=\"wizcraft-cli_welcome\" width = \"600\" height = \"300\" /\u003e\n\u003c/p\u003e\n\n## Dataset Doctor\n\n`wizcraft doctor` audits a CSV and surfaces common machine-learning data quality issues before you start modeling:\n\n```bash\nwizcraft doctor train.csv --target Survived\n```\n\nThe doctor currently checks for:\n\n- Column types, including numeric, categorical, datetime, text-like, ID-like, and mostly-empty columns\n- Missing values\n- Duplicate rows\n- ID-like columns\n- Constant and near-constant columns\n- Categorical columns that need encoding\n- Date/datetime columns that may need feature extraction\n- Numeric outliers using the IQR rule\n- Imbalanced target columns\n- Likely modeling task: binary classification, multiclass classification, or regression\n- Possible target leakage from suspicious names or highly target-correlated numeric columns\n\nYou can write a suggested recipe and apply it later:\n\n```bash\nwizcraft doctor train.csv --target Survived --write-recipe recipe.json\nwizcraft apply train.csv --recipe recipe.json --out train-clean.csv\n```\n\nYou can also use Doctor output in automation:\n\n```bash\nwizcraft doctor train.csv --target Survived --format json\nwizcraft doctor train.csv --target Survived --html report.html\n```\n\n## Features Available\n\n### Data Description\n\n\u003cp\u003e\n  \u003cimg src=\"https://i.imgur.com/2CUMMoX.png\" alt=\"data_description_preview\" /\u003e\n\u003c/p\u003e\n\n1. View statistics and properties of numeric columns.\n2. Explore unique values and statistics of categorical columns.\n3. Display a snapshot of the dataset.\n\n### Handle Null Values\n\n\u003cp\u003e\n  \u003cimg src=\"https://i.imgur.com/JlkyQl5.png\" alt=\"null_data_preview\" /\u003e\n\u003c/p\u003e\n\n1. Show NULL value counts in each column.\n2. Remove specific columns or fill NULL values with mean, median, mode, or K-nearest neighbors.\n\n### Encode Categorical Values\n\n\u003cp\u003e\n  \u003cimg src=\"https://i.imgur.com/0gEfhpi.png\" alt=\"one_hot_encode_preview\" /\u003e\n\u003c/p\u003e\n\n1. Identify and list categorical columns.\n2. Perform one-hot encoding on categorical columns.\n\n### Feature Scaling\n\n\u003cp\u003e\n  \u003cimg src=\"https://i.imgur.com/kfpoXeG.png\" alt=\"scaling_preview\" /\u003e\n\u003c/p\u003e\n\n1. Normalize (Min-Max scaling) or standardize (Standard Scaler) numerical columns.\n\n### Save Preprocessed Dataset\n\n\u003cp\u003e\n  \u003cimg src=\"https://i.imgur.com/1XywkGQ.png\" alt=\"save_preview\" /\u003e\n\u003c/p\u003e\n\n1. Download the modified dataset with applied preprocessing steps.\n2. Save a replayable `.recipe.json` file for the same preprocessing flow.\n\n## Replayable Recipes\n\nWizCraft can now save the preprocessing steps you perform interactively. A recipe is a small JSON file that can be applied again later:\n\n```bash\nwizcraft apply raw-data.csv --recipe cleaned.recipe.json --out cleaned-data.csv\n```\n\nRecipes currently support:\n\n- Removing columns\n- Filling null values with mean, median, mode, or K-nearest neighbors\n- One-hot encoding categorical columns\n- Normalizing or standardizing numeric columns\n\n## Roadmap\n\nWizCraft is being rebuilt around three ideas: a friendly first-time CLI, dataset health checks, and repeatable preprocessing recipes.\n\nCurrent priorities:\n\n- Non-interactive commands for automation and notebooks.\n- Exportable scikit-learn preprocessing pipelines.\n- Cleaner terminal tables, validation, and error messages.\n- Example datasets, tutorials, and good first issues for new contributors.\n\nSee [ROADMAP.md](ROADMAP.md) for the full direction.\n\n## Contributing to the Project\n**Check out the [Contribution Guide](https://github.com/Pinak-Datta/wiz-craft/blob/main/CONTRIBUTING.md) if you want to contribute to this project**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinak-datta%2Fwiz-craft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinak-datta%2Fwiz-craft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinak-datta%2Fwiz-craft/lists"}