Skip to main content

One-command EDA report generator (HTML with Plotly).

Project description

turboeda

PyPI version Python versions

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

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 via chardet (installed as a dependency).


🚀 Usage (CLI)

Short form (recommended):

turboeda "data.csv" -o "report.html" --open
# Excel (auto-uses the FIRST sheet if --sheet is omitted):
turboeda "data.xlsx" --sheet "Sheet1" -o "report.html" --open

Long form (also supported, legacy-friendly):

turboeda report "data.csv" -o "report.html" --open
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.csvC:\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 "data.csv" --theme dark
    
  • Light:
    turboeda "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-rows to 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 you pip install -e .)

📄 License

MIT License — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

turboeda-0.2.3.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

turboeda-0.2.3-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file turboeda-0.2.3.tar.gz.

File metadata

  • Download URL: turboeda-0.2.3.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for turboeda-0.2.3.tar.gz
Algorithm Hash digest
SHA256 0491ef1e35fba3d11dc7100a96a040c913a9d97cc54c10fc40fc78429da2c55c
MD5 33fd6cf73f0785f7ad23a80bc9b036d7
BLAKE2b-256 ac27d1f049c458c19313c1ddcc58a0fa5ef7eaa62eb55cfe551769e715e4d146

See more details on using hashes here.

Provenance

The following attestation bundles were made for turboeda-0.2.3.tar.gz:

Publisher: publish.yml on rozsit/turboeda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file turboeda-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: turboeda-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for turboeda-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b22c588f4f683a18c955d4774ab8e8b5136b151eb33c6a8f768597a0eaf8dd6f
MD5 d6444db7a951347bbc1769d7599e021b
BLAKE2b-256 1ab553d12e30a82ce9419d5df515051adddd28db7e3dbe077338e371d0f1b118

See more details on using hashes here.

Provenance

The following attestation bundles were made for turboeda-0.2.3-py3-none-any.whl:

Publisher: publish.yml on rozsit/turboeda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page