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.2.tar.gz (13.7 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.2-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: turboeda-0.2.2.tar.gz
  • Upload date:
  • Size: 13.7 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.2.tar.gz
Algorithm Hash digest
SHA256 ef405c19d1dc177b8e924ba3264b9b5b0a21c879986b3556a6d903a6b52cfc0e
MD5 73d3d42daf18b945e0b6f716714b35d5
BLAKE2b-256 d2d5423a187f6be1ee480824f8a7f1daec971a6201eaeafc4ba3a434bd7b7a14

See more details on using hashes here.

Provenance

The following attestation bundles were made for turboeda-0.2.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: turboeda-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 22.6 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a7e894dfba90b6ec3cd20527c644ecabd6c081c5dfeb44c2ed022c0ed48a1ea3
MD5 863c19d8c069b78e281eb4e5b5b85d20
BLAKE2b-256 3cbbd351aba06381701b9b9287d3aa501c341a3efb46267ca381eb84b4908942

See more details on using hashes here.

Provenance

The following attestation bundles were made for turboeda-0.2.2-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