One-command EDA report generator (HTML with Plotly).
Project description
turboeda
turboeda is a one-command Exploratory Data Analysis (EDA) report generator.
Give it a CSV or XLSX file — it automatically analyzes the data and creates a polished, interactive HTML report with Plotly charts.
📦 Installation
From PyPI (when available)
pip install turboeda
From local source (development mode)
# in the project root folder (where pyproject.toml is)
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
# source .venv/bin/activate
pip install -e .
CSV files are read with pandas' default engine. Excel is handled by
openpyxl.
CSV encoding is auto-detected viachardet(installed as a dependency).
🚀 Usage (CLI)
turboeda report "data.csv" -o "report.html" --open
# Excel (auto-uses the FIRST sheet if --sheet is omitted):
turboeda report "data.xlsx" --sheet "Sheet1" -o "report.html" --open
Default naming rule:
If -o/--out is not provided, the HTML is saved as <input_basename>_report.html in the same folder as the input file.
Examples:
C:\data\Iris.csv→C:\data\Iris_report.html/Users/me/data/sales.xlsx→/Users/me/data/sales_report.html
Common options:
--sheet "Sheet1": select Excel sheet if using.xlsx(if omitted, first sheet is used)--sep ";": custom CSV delimiter--sample-rows 100000: sample large files for faster analysis (default: 200000)--max-corr-cols 40: cap number of columns in correlation matrices--max-numeric-plots 12/--max-categorical-plots 12: limit per-variable charts--theme dark|light: choose dark or light theme (default: dark)--open: open the generated HTML in your default browser
📓 Usage in Jupyter Notebook / Python scripts
from turboeda import EDAReport
from pathlib import Path
# Create and run analysis
report = EDAReport(
input_path="data.csv",
theme="dark", # or "light"
sample_rows=None, # use all rows; or set an int to sample large datasets
max_corr_cols=40,
max_numeric_plots=12,
max_categorical_plots=12,
# Optional UX:
auto_save_and_open=False, # if True, saves & opens after run()
out_path=None, # custom output name; otherwise uses <input>_report.html
open_target="tab", # "tab" or "window" for auto-open
)
results = report.run()
# Export to HTML (default name rule: <input_basename>_report.html)
inp = Path("data.csv")
out = inp.with_name(f"{inp.stem}_report.html")
report.to_html(out.as_posix(), open_in_browser=True) # set open_in_browser=False if you don't want auto-open
Inline preview in notebook:
from IPython.display import IFrame
IFrame("data_report.html", width="100%", height=800)
🎨 Theme
The report supports dark and light themes.
Charts adopt the chosen theme as well (Plotly plotly_dark vs plotly).
- Dark (default):
turboeda report "data.csv" --theme dark
- Light:
turboeda report "data.csv" --theme light
🧠 Notes & Tips
- CSV encoding is auto-detected with
chardet; Excel uses the selected sheet (or first if omitted). - For very large files, consider
--sample-rowsto speed up initial EDA. - Datetime detection is heuristic-based and avoids deprecated parsing flags; specify formats upstream if needed.
- On Windows PowerShell, if script activation is blocked, run:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
⚡ Requirements
- Python 3.9+
- Packages:
pandas,numpy,plotly,jinja2,typer,chardet,openpyxl
(installed automatically when youpip install -e .)
📄 License
MIT License — see LICENSE.
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 turboeda-0.2.1.tar.gz.
File metadata
- Download URL: turboeda-0.2.1.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6462590d68469119049b4e89dae77b9942f9a9ae66847a75c142a0b0adb1a4e
|
|
| MD5 |
9b5fb9ad00013f2b235adba041046e0b
|
|
| BLAKE2b-256 |
c2d8aff6e9c37db50338a4be9cb9b648f98657271f2251bce3292b3fbfef5b02
|
Provenance
The following attestation bundles were made for turboeda-0.2.1.tar.gz:
Publisher:
publish.yml on rozsit/turboeda
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
turboeda-0.2.1.tar.gz -
Subject digest:
e6462590d68469119049b4e89dae77b9942f9a9ae66847a75c142a0b0adb1a4e - Sigstore transparency entry: 537361794
- Sigstore integration time:
-
Permalink:
rozsit/turboeda@035d211b5cbd54bd1af4b8d5da77ec47a5eac07b -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/rozsit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@035d211b5cbd54bd1af4b8d5da77ec47a5eac07b -
Trigger Event:
push
-
Statement type:
File details
Details for the file turboeda-0.2.1-py3-none-any.whl.
File metadata
- Download URL: turboeda-0.2.1-py3-none-any.whl
- Upload date:
- Size: 22.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca901fa716c9550d0b1ac851f0ed461f07af8e619d42bfee54ae4b044d2b3b20
|
|
| MD5 |
3862b378d9af2c938383cf85cf522fd0
|
|
| BLAKE2b-256 |
290fe8071748ef92fdf62e2127bb46467eebfcb185cf83be4fab6527462a7640
|
Provenance
The following attestation bundles were made for turboeda-0.2.1-py3-none-any.whl:
Publisher:
publish.yml on rozsit/turboeda
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
turboeda-0.2.1-py3-none-any.whl -
Subject digest:
ca901fa716c9550d0b1ac851f0ed461f07af8e619d42bfee54ae4b044d2b3b20 - Sigstore transparency entry: 537361817
- Sigstore integration time:
-
Permalink:
rozsit/turboeda@035d211b5cbd54bd1af4b8d5da77ec47a5eac07b -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/rozsit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@035d211b5cbd54bd1af4b8d5da77ec47a5eac07b -
Trigger Event:
push
-
Statement type: