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, sopip install meti_profilalso 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
Metadata
Release files for meti-profil 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| meti_profil-0.1.2.tar.gz | 46.5 kB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| meti_profil-0.1.2-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| meti_profil-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| meti_profil-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| meti_profil-0.1.2-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| meti_profil-0.1.2-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 23.5 MB
Release files / meti_profil-0.1.2.tar.gz
| Download URL | meti_profil-0.1.2.tar.gz |
|---|---|
| Size | 46.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
195fc9a59d14ebfe03c27d233539956faf0129b28fc264038584b6b1773f8ed0
|
|
BLAKE2b-256 checksum How to use checksums |
e72450450f20f674e1099fa9d297019097527ee639700e4671ff6dccac658cca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.
Transparency logRelease files / meti_profil-0.1.2-cp310-abi3-win_amd64.whl
| Download URL | meti_profil-0.1.2-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
3c1e173af2b91c2a09558f28e6ae8f563c41b62c00a78dbdbee786e259bab40a
|
|
BLAKE2b-256 checksum How to use checksums |
0254fc450268d0a7d492c9fc51e01f71774247cbdcd285c6bc77d6d701cdad4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.
Transparency logRelease files / meti_profil-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | meti_profil-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
76c9a9da3d2ffa890dd2c5bf20e9f80ff5724b2a64a9f524686f204d23a64adf
|
|
BLAKE2b-256 checksum How to use checksums |
c093884e359c869a29bb45eb0f1dc742d54432840e8d40a0edbaf285d8ae34f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.
Transparency logRelease files / meti_profil-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | meti_profil-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 5.0 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
d5636390fef45e4d04676f5cbd44f0e8927027e154c0713a831942c062c83b8c
|
|
BLAKE2b-256 checksum How to use checksums |
6b5767aa981a1a748b34406649286b29c155d7737fccba948b45de6b6d68cd78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.
Transparency logRelease files / meti_profil-0.1.2-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | meti_profil-0.1.2-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cfe6001dace0c8ae19369350c7cf2bd3fc4bfbecf2cf2a269b5b36e2fe28cfa7
|
|
BLAKE2b-256 checksum How to use checksums |
00dd54f2aa3f23bbd5a891de919a8c1028e1474b33f96e4c53ff2b87f6af37e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.
Transparency logRelease files / meti_profil-0.1.2-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | meti_profil-0.1.2-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
e1c40acdf1ca7208474c822b9340ef0bfa53b594589edc1da5ee92c96f1914fb
|
|
BLAKE2b-256 checksum How to use checksums |
fbc2d52e4ac0268a952791b6832848ea7b763c49bc6aa9932723ed34a3fc3aaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.
Transparency logSecurity for meti-profil 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 6 files in this release have been uploaded with provenance metadata.
Attestation for meti_profil-0.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.