Skip to main content

LintData

PyPI Python 3.13+ Licence: MIT CI

A "linter" for pandas DataFrames to automate data quality audits.

Installation

You can install LintData via pip:

pip install lintdata

Via UV:

uv add lintdata

Or install from source:

git clone https://github.com/patelheet30/lintdata.git
cd lintdata
pip install -e .

Features

✅ 20+ Data Quality Checks - Missing values, duplicates, outliers, type consistency, and more
✅ Zero Configuration - Works out of the box with sensible defaults
✅ Highly Configurable - Customize thresholds and select specific checks
✅ Multiple Export Formats - Text, HTML, JSON, and CSV reports
✅ Custom Checks API - Extend with your own validation logic
✅ Pandas Native - Integrates seamlessly via .lint accessor

Quick Start

import pandas as pd
import lintdata

# Load your DataFrame
df = pd.read_csv("your_data.csv")

# Run quality checks
report = df.lint.report()
print(report)

Example Output:

--- LintData Quality Report ---
Shape: (1000, 8)

Running Checks:
Found 5 issue(s):
  1. [Missing Values] Column 'age': 45 missing values (4.5%)
  2. [Duplicates] Found 12 duplicate rows (1.2% of data)
  3. [Outliers] Column 'salary': 8 potential outliers detected (IQR method)
  4. [Mixed Types] Column 'phone' contains both numeric and string values
  5. [High Cardinality] Column 'user_id' has 987 unique values (98.7%)

--- End of Report ---

Available Checks

LintData includes 22+ built-in checks across multiple categories:

  • Missing Data: Missing values, missing patterns
  • Duplicates: Duplicate rows, duplicate columns
  • Data Types: Mixed types, type consistency
  • Statistical: Outliers, skewness, correlation warnings
  • Categorical: Cardinality, rare categories, case consistency
  • Numerical: Negative values, zero inflation
  • Strings: Whitespace, special characters, length outliers
  • Dates: Format consistency, future dates, date range anomalies
  • Multi-table: Referential integrity (foreign key validation)

Export Formats

Save reports in multiple formats:

# HTML report with visualizations
df.lint.report(report_format='html', output='report.html')

# JSON for programmatic access
df.lint.report(report_format='json', output='report.json')

# CSV for spreadsheet analysis
df.lint.report(report_format='csv', output='issues.csv')

Custom Checks

Extend LintData with your own validation logic:

def check_email_format(df):
    """Validate email addresses."""
    warnings = []
    for col in df.select_dtypes(include='object').columns:
        if 'email' in col.lower():
            invalid = df[~df[col].str.contains('@', na=False)]
            if len(invalid) > 0:
                warnings.append(f"[Email] Column '{col}': {len(invalid)} invalid emails")
    return warnings

# Register and use
df.lint.register_check(check_email_format)
df.lint.report()

Documentation

Full documentation available at: LintData Documentation

Issues and Support

For general help or to report bugs, please open an issue on GitHub: LintData Issues.

If you have questions or need assistance, feel free to reach out via Discord: patelheet30

Metadata

Release files for lintdata 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lintdata 1.1.0
File Size Uploaded Provenance
lintdata-1.1.0.tar.gz 35.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for lintdata 1.1.0
File Interpreter ABI Platform
lintdata-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 57.9 kB

Release files / lintdata-1.1.0.tar.gz

Download URL lintdata-1.1.0.tar.gz
Size 35.1 kB
Tags Source
SHA-256 checksum
How to use checksums
29645d6af06c09851ad1c4423b1532bec6e3a4ae89b7525bb4fe8bd6e10255ef
BLAKE2b-256 checksum
How to use checksums
b5018b9bf23d5bc6b783c6b32ed2a899edc2ee6d4e9b3fdad6038418d04b4d65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / lintdata-1.1.0-py3-none-any.whl

Download URL lintdata-1.1.0-py3-none-any.whl
Size 22.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b5f9eaa959b0a9ad175c8fe23655c10d1dae287aee28f6509e8d48f89c42391
BLAKE2b-256 checksum
How to use checksums
c8f1f598bf572c46029e82608c518e0b12213ea428287e4b9f212dc9444e30d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for lintdata 1.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

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