featuresmith
  • Docs
  • SDK
  • CLI
  • Examples
  • Roadmap
v0.1.0
v0.1.0 — Open Source

Profile, Validate, and
Understand Your Data.

Featuresmith is an open-source Python library for dataset profiling, rule-based validation, and intelligent feature analysis. Built for engineers who believe data quality is a first-class concern.

Get StartedView on GitHubv0.1.0
Apache 2.0License
3.11+Python
StrictType Safety
RuffCode Quality
featuresmith
$ featuresmith analyze customers.csv
 
Analyzing dataset...
✓ 12,847 rows loaded in 0.2s
✓ 23 columns detected
✓ Profile complete in 0.8s
 
─── Summary ─────────────────────────────
Numeric columns 14
Categorical columns 7
Missing values 2.3%
Memory usage 4.2 MB
────────────────────────────────────────
$

Features

Everything you need to trust your data

From raw files to validated feature sets, Featuresmith gives you the primitives to build reliable data pipelines.

Dataset Layer

Unified interface for loading tabular data from CSV, Parquet, Excel, pandas, and Polars DataFrames into a normalized contract.

Profiling Engine

Deterministic computation of 23 numeric metrics, categorical frequency, text profiles, datetime ranges, and Pearson correlations.

Rule Engine

8 built-in deterministic validation and leakage rules covering duplicate rows, missingness ratios, empty columns, and target leakage.

CLI Wrapper

Thin Typer command-line client enabling styled Rich tables, JSON export, and exit-code gating (0 = clean, 1 = findings) for CI pipelines.

AI-Ready Architecture

Core structure prepared for pluggable AI Providers (Ollama, OpenAI, Anthropic) to narrate results, rank recommendations, and run interactive Q&A.

Extensible design

Built-in extension points for registering custom connectors, rules, exporters, and AI providers using standard setuptools entry points.

Architecture

A clean, composable pipeline

Featuresmith is designed as a layered pipeline. Each stage builds on the last, giving you clear extension points as your needs grow.

Raw Data Source

CSV · Excel · Parquet · DataFrame

Dataset

fs.load() normalized schema and connectors

ProfileResult

fs.profile() deterministic statistical profiling

RuleResult

fs.analyze() running 8 deterministic rules

CLI & SDK interfaces

Zero business logic thin clients calling public SDK APIs

Planned

Recommendation Engine (Phase 2+)

Grounded feature engineering rankings and rationales

Planned

AI Layer & Chat (Phase 2+)

Narrative summaries & interactive context-grounded Q&A

AvailablePlanned

Code Examples

Intuitive by design

Featuresmith's API is designed to feel natural whether you're scripting from the terminal or integrating into a Python codebase.

example.py
python
1import featuresmith as fs
2
3# ── Load ───────────────────────────────────────────────────
4# Load dataset from CSV, Excel, Parquet, or in-memory DataFrame
5dataset = fs.load("customers.csv")
6print(dataset.row_count) # 50000
7print(dataset.schema.names) # ['id', 'age', 'churn', ...]
8
9# ── Profile ────────────────────────────────────────────────
10# Run deterministic profiling engine
11profile = fs.profile("customers.csv")
12for name, col in profile.column_profiles.items():
13 print(f"{name}: {col.missing_count} missing values")
14
15# ── Analyze ────────────────────────────────────────────────
16# Run rule engine: loader → profiler → rules evaluation
17result = fs.analyze("customers.csv", target_column="churn")
18
19for finding in result.findings:
20 print(f"[{finding.severity.upper()}] {finding.title}")
21 print(f" Column : {finding.column_name}")
22 print(f" Rule : {finding.rule_id}")
23 print(f" Detail : {finding.description}")
24
25print(f"Executed: {len(result.executed_rules)} rules in {result.execution_time_ms:.1f}ms")
Install via pip:pip install featuresmith-corelatest: 0.1.0

Philosophy

Principles that guide every decision

Correctness over convenience

Data quality decisions should be explicit, not implicit. Featuresmith never silently coerces values or swallows errors. Every operation returns a result you can inspect, log, and act on.

The right defaults, the right escape hatches

Sensible defaults get you to insights in seconds. But every default is overridable. Validators, loaders, reporters, and thresholds are all configurable — nothing is locked behind an abstraction you can't reach.

Core-first architecture

All business logic resides in Featuresmith Core. The Python SDK, CLI, Dashboard, and any future extensions are thin wrappers over this unified engine. Zero duplicated logic, identical findings across every surface.

Roadmap

Where we are. Where we're going.

Featuresmith is actively developed. The roadmap is public and contributions are welcome at every phase.

Phase 0 & 1Complete

Foundations & Core MVP

  • Core Dataset schema abstractions and explicit loading registry
  • Connectors for CSV, Parquet, Excel, pandas, and Polars DataFrames
  • Deterministic Profiling Engine with Cap-controlled correlation matrix
  • Deterministic Rule Engine with 8 seed quality & leakage rules
  • CLI analyze command with table/json formatting and exit-code gating
Phase 2 & 3In Progress

AI Narration & Interactive Chat

  • AI Provider protocol supporting Ollama (local), OpenAI, and Anthropic
  • Plain-language dataset narration and recommendation ranking
  • Interactive AI Chat Session grounded entirely in computed ProfileResult
  • Zero network-fallback template mode when no LLM provider is active
Phase 4 & 5Planned

Export Layer & Dashboard UI

  • Export code-generators for sklearn Pipelines and Jupyter Notebooks
  • HTML static report generation with declarative chart specs
  • Streamlit Dashboard for interactive browser-based uploads, charts, and chat
  • SQL database connectors with profile pushdown capabilities
Phase 6 & 7Future

Plugin Ecosystem & Editor Extensions

  • Dataset diffing and distribution drift detection across snapshots
  • Plugin cookiecutter templates for community rules, connectors, and exporters
  • VS Code extension for inline data profiling & interactive chat in-editor
  • Feature store exports (Feast schemas)

Open Source

Built in the open.
For everyone.

Featuresmith is Apache 2.0-licensed and developed entirely in public. Every design decision, API change, and roadmap item is visible on GitHub. We believe the best tools are built with the community, not for it.

License
Apache 2.0
Development
Active
Contribution
Open Source
Star on GitHubContribute
featuresmith

Open-source data profiling and validation for Python engineers.

Documentation

  • Introduction
  • Quick Start
  • Python SDK
  • CLI Reference

Community

  • GitHub
  • Discussions
  • Issues
  • Contributing

Project

  • Roadmap
  • Release status
  • Benchmarks
  • Changelog
  • Examples

Legal

  • Apache 2.0 License
  • Code of Conduct
  • Security

© 2026 Featuresmith Contributors. Released under the Apache 2.0 License.

Built in the open — contributions welcome.