Skip to main content

meti_profil

A modern, Rust-powered data profiling library with Python bindings. It reads CSV, Parquet, and Excel files (or pandas / polars DataFrames) and generates a hybrid Markdown report that is readable by humans and structured for consumption by code agents.

Installation

pip install meti-profil

The import name is meti_profil (import meti_profil as mp). PyPI normalizes the distribution name, so pip install meti_profil also works.

Quick start

import meti_profil as mp

# From a file
report = mp.ProfileReport("data.csv", title="My dataset")

# Interactive HTML report (self-contained, works offline)
report.to_html("profile.html")

# Markdown report (great for diffs and code agents)
report.to_file("profile.md")

# From a pandas DataFrame
import pandas as pd
df = pd.read_csv("data.csv")
report = mp.ProfileReport(df)

# Programmatic access
print(report.get_summary())          # dataset-level metrics
print(report.get_column_info("age")) # per-column schema info
markdown = report.to_markdown()
html = report.to_html()              # returns the HTML as a string

In a notebook

In Jupyter / VSCode, just display the report — it renders inline as an interactive dashboard (sandboxed, no external resources):

report = mp.ProfileReport(df)
report  # interactive histograms, bar charts, correlation heatmap, ...

ProfileReport parameters

Parameter Type Default Description
source str, Path, pandas/polars DataFrame required Data source.
title str "Dataset Profile" Report title (written to the frontmatter).
minimal bool False Reserved: reduce heavy analyses.
explorative bool True Reserved: enable advanced analyses.

Report format

The Markdown report starts with a quoted YAML frontmatter block (rows, columns, missing cells, duplicates, version), then an ## Agent Summary JSON block for code agents, followed by normalized ## sections: Overview, Schema, Numeric Columns, Categorical Columns, Missing Values, Duplicate Rows, and Correlations when high-correlation pairs are present.

Because the agent summary is compact and stable JSON, coding agents can inspect key dataset diagnostics without reading the full report or parsing long Markdown tables. This can reduce context usage and make downstream automation more reliable, especially when reports are generated repeatedly in data workflows.

Features

  • Fast Rust engine backed by Apache Arrow.
  • Reads CSV, Parquet (snappy/zstd/lz4/brotli/gzip), and Excel files.
  • Accepts pandas and polars DataFrames.
  • Schema/type detection, descriptive numeric statistics across Arrow integer and float types, categorical frequencies, missing-value and duplicate-row analysis, and Pearson correlations. Null, NaN and infinite numeric values are treated as unavailable for numeric statistics/correlations.
  • Interactive HTML report: a single self-contained file (embedded CSS/JS, no CDN) with section navigation, responsive tables, histograms, categorical bar charts, a missing-value overview and a correlation heatmap with safe SVG tooltips.
  • Native notebook rendering in Jupyter / VSCode via _repr_html_.
  • Clean Markdown reports optimized for both humans and code agents, including escaped table cells and a stable JSON summary block.

Output formats

Method Output
to_html(path) Write a self-contained interactive HTML file.
to_html() Return the HTML document as a string.
to_file(path) Write the Markdown report.
to_markdown() Return the Markdown report as a string.
get_summary() Dataset-level metrics as a dict.
get_column_info(name) Per-column schema info as a dict.
display in a notebook Inline interactive dashboard (_repr_html_).

Development

Requires a Rust toolchain (1.78+) and Python 3.10+.

python3 -m venv .venv
source .venv/bin/activate
pip install maturin pytest pandas polars pyarrow

# Build the extension in-place
maturin develop

# Run the test suites
cargo test --workspace
pytest tests/python -v

License

MIT

Download files

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

Source Distribution

meti_profil-0.1.2.tar.gz (46.5 kB view details)

Uploaded Source

Built Distributions

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

meti_profil-0.1.2-cp310-abi3-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

meti_profil-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

meti_profil-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

meti_profil-0.1.2-cp310-abi3-macosx_11_0_arm64.whl (4.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

meti_profil-0.1.2-cp310-abi3-macosx_10_12_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file meti_profil-0.1.2.tar.gz.

File metadata

  • Download URL: meti_profil-0.1.2.tar.gz
  • Upload date:
  • Size: 46.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for meti_profil-0.1.2.tar.gz
Algorithm Hash digest
SHA256 195fc9a59d14ebfe03c27d233539956faf0129b28fc264038584b6b1773f8ed0
MD5 f9e3b774b945b8fca524533c5f7a3ebf
BLAKE2b-256 e72450450f20f674e1099fa9d297019097527ee639700e4671ff6dccac658cca

See more details on using hashes here.

Provenance

The following attestation bundles were made for meti_profil-0.1.2.tar.gz:

Publisher: ci.yml on Metimer/meti_profil

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

File details

Details for the file meti_profil-0.1.2-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: meti_profil-0.1.2-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for meti_profil-0.1.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3c1e173af2b91c2a09558f28e6ae8f563c41b62c00a78dbdbee786e259bab40a
MD5 fbd13fed20ab8d13ff3c261f86eea4f3
BLAKE2b-256 0254fc450268d0a7d492c9fc51e01f71774247cbdcd285c6bc77d6d701cdad4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for meti_profil-0.1.2-cp310-abi3-win_amd64.whl:

Publisher: ci.yml on Metimer/meti_profil

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

File details

Details for the file meti_profil-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for meti_profil-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 76c9a9da3d2ffa890dd2c5bf20e9f80ff5724b2a64a9f524686f204d23a64adf
MD5 4ba536bcd8aa4f26158cb8541eda64c0
BLAKE2b-256 c093884e359c869a29bb45eb0f1dc742d54432840e8d40a0edbaf285d8ae34f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for meti_profil-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on Metimer/meti_profil

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

File details

Details for the file meti_profil-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for meti_profil-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d5636390fef45e4d04676f5cbd44f0e8927027e154c0713a831942c062c83b8c
MD5 4c1606b4ae6bb56ee57769db37778deb
BLAKE2b-256 6b5767aa981a1a748b34406649286b29c155d7737fccba948b45de6b6d68cd78

See more details on using hashes here.

Provenance

The following attestation bundles were made for meti_profil-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on Metimer/meti_profil

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

File details

Details for the file meti_profil-0.1.2-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for meti_profil-0.1.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cfe6001dace0c8ae19369350c7cf2bd3fc4bfbecf2cf2a269b5b36e2fe28cfa7
MD5 0330105f05565ffd361de848fa0944bd
BLAKE2b-256 00dd54f2aa3f23bbd5a891de919a8c1028e1474b33f96e4c53ff2b87f6af37e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for meti_profil-0.1.2-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: ci.yml on Metimer/meti_profil

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

File details

Details for the file meti_profil-0.1.2-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for meti_profil-0.1.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e1c40acdf1ca7208474c822b9340ef0bfa53b594589edc1da5ee92c96f1914fb
MD5 5785440a5d3cba63a55104090bc4bb3d
BLAKE2b-256 fbc2d52e4ac0268a952791b6832848ea7b763c49bc6aa9932723ed34a3fc3aaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for meti_profil-0.1.2-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: ci.yml on Metimer/meti_profil

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

Release history Release notifications | RSS feed

This release

0.1.2 This release

6 files

0.1.1

6 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page