The Open Source Operating System for Dataset Engineering.
Project description
____ _ _____ _ ____ ___ ____ | _ \ / \|_ _|/ \ | _ \ / _ \ / ___| | | | |/ _ \ | | / _ \ | | | | | | | | | |_| / ___ \| |/ ___ \| |_| | |_| | |___ |____/_/ \_\_/_/ \_\____/ \___/ \____|
The Open Source Operating System for Dataset Engineering.
Install | Why DATADOC? | Quick Start | CLI Commands | Architecture
🚀 What is DATADOC?
DATADOC is an intelligent, blazing-fast Command Line Interface (CLI) and Python Library designed to completely automate the most tedious part of Machine Learning: Dataset Engineering and Data Cleaning.
Powered by a high-performance Polars backend, DATADOC analyzes your raw CSV files, diagnoses missing values, outliers, and schema issues, and automatically engineers a machine-learning-ready dataset in milliseconds.
DATADOC is NOT just another EDA (Exploratory Data Analysis) tool. It doesn't just show you charts. It fixes your data and hands you a portable, deterministic Python script to replicate the pipeline anywhere.
⚡ The Impact: Why Industry Professionals Use DATADOC
Data Scientists and ML Engineers spend 80% of their time cleaning data and only 20% training models. DATADOC eliminates the 80%.
- Save Hundreds of Hours: Stop writing boilerplate code to impute nulls, one-hot encode categorical variables, or clip outliers. DATADOC does it in one command.
- Zero Black-Box AI: Every transformation is strictly mathematical (IQR, medians, mode). It is 100% deterministic, explainable, and safe for enterprise production environments.
- Lightning Fast: By utilizing
polars(written in Rust) instead ofpandas, DATADOC processes millions of rows with minimal memory overhead. - Agentic AI Integration: DATADOC features a built-in AI Planner and an interactive Chat Assistant that can autonomously analyze your dataset, generate engineering plans, and execute plugins using tool-calling!
- Avoid Data Leakage: Built-in safeguards ensure that data scaling and imputation are handled correctly.
📦 Installation
DATADOC is published on PyPI. You can install it globally via pip or uv:
pip install datadoc-cli
(Requires Python 3.9+)
🛠️ Quick Start (CLI)
You don't need to write a single line of Python to clean your data. Just use the CLI.
# 1. Analyze your dataset's health (shows a beautiful terminal report)
datadoc analyze raw_data.csv
# 2. Get recommendations (DATADOC tells you exactly what is wrong)
datadoc recommend raw_data.csv
# 3. AUTO-ENGINEER! (Fixes everything and saves clean_raw_data.csv)
datadoc engineer raw_data.csv
# 4. Compare the before vs. after visually in your terminal
datadoc compare raw_data.csv clean_raw_data.csv
# 5. Export a standalone Python script to automate this in the future
datadoc pipeline raw_data.csv
# 6. Have an interactive AI session where the LLM engineers your data via chat!
datadoc chat raw_data.csv
*(Pro Tip: Add `--ai` to `analyze`, `recommend`, or `engineer` for AI-driven insights and orchestration!)*
🐍 Python SDK (Library Usage)
DATADOC is also a powerful Python library. You can import the engine directly into your Jupyter Notebooks or backend servers:
from datadoc.core.engine import DATADOC
# Initialize the blazing-fast Polars engine
doc = DATADOC("raw_data.csv")
# Generate a diagnostic report
report = doc.analyze()
print(report)
# Automatically engineer the dataset
clean_df = doc.engineer()
clean_df.write_csv("clean_data.csv")
# Export the generated pipeline script
with open("my_pipeline.py", "w") as f:
f.write(doc.pipeline())
💻 CLI Commands Reference
| Command | Description |
|---|---|
datadoc analyze <file> |
Scans dataset and shows a health report with status indicators |
datadoc recommend <file> |
Lists suggested engineering steps without modifying data |
datadoc engineer <file> |
Automatically applies all recommended transformations |
datadoc chat <file> |
Starts an interactive AI session with autonomous tool-calling |
datadoc compare <file> |
Shows a before/after diff of the raw vs engineered dataset |
datadoc pipeline <file> |
Exports a standalone .py script with the exact Polars code |
datadoc visualize <file> |
Renders stunning terminal-based charts for numeric distributions |
datadoc plugin |
Lists all registered plugins with priority and descriptions |
datadoc version |
Displays the DATADOC version |
(Note: Use the --ai flag on analyze, recommend, or engineer for LLM-powered execution!)
🧩 Architecture & Plugins
DATADOC operates as an orchestrator. It passes your dataset through an isolated chain of plugins in a strict priority order.
| Priority | Plugin | Action Performed |
|---|---|---|
| 10 | MissingValuePlugin | Imputes missing numeric values with median, categorical with mode |
| 20 | OutlierPlugin | Detects outliers via IQR and clips them dynamically |
| 30 | DatetimePlugin | Detects date strings and extracts year, month, day, day_of_week |
| 40 | CategoricalEncoderPlugin | One-Hot Encodes categorical columns (< 10 unique values) |
| 45 | ScalingPlugin | Standard scales numeric columns when scale ratio exceeds 10x |
Every plugin implements a strict BasePlugin interface ensuring it can analyze(), apply(), rollback(), and generate_code().
Want to build your own? See CONTRIBUTING.md to learn how to create and register custom plugins!
🗺️ Roadmap
- Core Engine with plugin orchestration
- 5 Built-in deterministic plugins
- Stunning Rich Terminal UI
- Pipeline export capability
- Polars Backend Migration (100x Performance Boost)
- PyPI Release (
pip install datadoc-cli) - Phase 2: Agentic AI Planner (LLM Orchestration)
- Interactive AI Chat with Tool-Calling capabilities
- Export targets for
dbtand Apache Airflow - REST API (FastAPI) wrapper
⚖️ License
This project is licensed under the MIT License. See LICENSE for details.
🤝 Contributing
We welcome contributions from the community! If you'd like to add a new plugin or improve the core engine, please see CONTRIBUTING.md.
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 datadoc_cli-0.2.0.tar.gz.
File metadata
- Download URL: datadoc_cli-0.2.0.tar.gz
- Upload date:
- Size: 25.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17500e8bf4243a12217db85df02760222ec60e927e263aa300c66ef628793f73
|
|
| MD5 |
0ef2798dde9a781bda40f0023d99a000
|
|
| BLAKE2b-256 |
64e0b7aac1a6a38e47c5743d8f1c32e2acbb0d8b024abfa57e2157408b129fa5
|
File details
Details for the file datadoc_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: datadoc_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 23.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3c14740b59e80b8651078ee0f15002265a6cac88c3f890a4718e0c4e9b7fe18
|
|
| MD5 |
b90a2b6c0031ec99fadb3a5235be7a69
|
|
| BLAKE2b-256 |
104a0a58cf90ff79f059a392050f9e5134a889772a2d5f38e9f33c3d468f6a55
|