Skip to main content

Polars-native EDA and comparison report generator that outputs a single self-contained HTML.

Project description

日本語版: README_JP.md

mitoric

A library that generates EDA / comparison reports for Polars DataFrames as a single HTML file.

PyPI

Features

  • Generate a report for a single dataset
  • Generate a comparison report for two datasets
  • Dataset summary (rows/columns/missing/duplicates, etc.)
  • Column profiles (numeric/categorical/text/datetime/boolean)
  • Correlation/association calculations
  • Histogram bin size switching (10/15/30/50)

Requirements

  • Python 3.10+
  • polars>=1
  • jinja2>=3.1.6

Usage

Report for a single dataset

import polars as pl
from mitoric import generate_single_report

frame = pl.DataFrame(
    {
        "age": [10, 12, 12, 14],
        "city": ["A", "B", "A", "C"],
    }
)

html = generate_single_report(frame, save_path="/tmp/report.html")
print(html[:200])

Comparison report for two datasets

import polars as pl
from mitoric import generate_compare_report

left = pl.DataFrame({"value": [1, 2, 3]})
right = pl.DataFrame({"value": [2, 3, 4]})

html = generate_compare_report(
    left,
    right,
    left_name="before",
    right_name="after",
    save_path="/tmp/compare_report.html",
)

Explicit column type specification

import polars as pl
from mitoric import generate_single_report
from mitoric.models.base import ColumnName, ColumnType, ExplicitType

frame = pl.DataFrame({"flag": ["yes", "no", "yes"]})
explicit_types = [ExplicitType(ColumnName("flag"), ColumnType("categorical"))]

html = generate_single_report(frame, explicit_types=explicit_types)

API

  • generate_single_report(frame, *, target_columns=None, explicit_types=None, save_path=None)
  • generate_compare_report(left, right, *, target_columns=None, explicit_types=None, save_path=None, left_name=None, right_name=None)

Types supported in explicit_types: numeric, categorical, text, datetime, boolean

Examples

Report screenshot

Constraints and Notes

  • Only Polars is supported (Pandas is not supported)
  • Generated HTML depends on TailwindCSS and chart.js via CDN
  • If save_path is not specified, HTML is returned as a string and nothing is saved

Disclaimer

This library was built with a fairly high ratio of vibe coding, so it may include unnecessary processing, questionable design, or tests. We will improve it as we find issues.

For Developers

Setup

uv sync

Development

uv sync
make lint
make test
make test_e2e # E2E outputs are saved under examples/output/ for regression checks

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

mitoric-0.0.1.dev2.tar.gz (305.6 kB view details)

Uploaded Source

Built Distribution

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

mitoric-0.0.1.dev2-py3-none-any.whl (44.5 kB view details)

Uploaded Python 3

File details

Details for the file mitoric-0.0.1.dev2.tar.gz.

File metadata

  • Download URL: mitoric-0.0.1.dev2.tar.gz
  • Upload date:
  • Size: 305.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mitoric-0.0.1.dev2.tar.gz
Algorithm Hash digest
SHA256 cf811555b2376703f944d5d0a4342574c2841b40c131347cb32c2bd2d069b30e
MD5 fa51e7bc779f40f8a84f323cde7af12e
BLAKE2b-256 3f89e9483b08fbfc1e7dd6c4288fb494334a3e803f3d270689c3d473b4208a1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mitoric-0.0.1.dev2.tar.gz:

Publisher: publish-pypi.yml on yokoc1322/mitoric

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

File details

Details for the file mitoric-0.0.1.dev2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for mitoric-0.0.1.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 9bf9cdc65fbae0c5e4d365c965e45c9dbce66c7ea80764c39610795f3ba9c6e2
MD5 f0ddd5026b523dc56080793a6a209ae1
BLAKE2b-256 aeeaa169f8287e65565a341cdd022d068d623620fd9983cdb10540b8d41ab296

See more details on using hashes here.

Provenance

The following attestation bundles were made for mitoric-0.0.1.dev2-py3-none-any.whl:

Publisher: publish-pypi.yml on yokoc1322/mitoric

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