Featuresmith Icon
Featuresmith
  • Docs
  • SDK
  • CLI
  • Examples
  • Roadmap
v0.4.0
Documentation

Getting Started

  • Introduction
  • Installation
  • Quick Start
  • Tutorial Notebooks
  • Benchmarks
  • Development Setup
  • Contributing

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine
  • Dataset Review Engine
  • ML Readiness Score
  • Target Leakage Detection
  • Dataset Diff Engine
  • Target Column Concept
  • Mental Model & Workflow
  • Interpreting Findings
  • Workflow Cheat Sheet
  • Beginner Glossary

Python SDK

  • load()
  • profile()
  • analyze()
  • review()
  • diff()
  • score()
  • plan()
  • Dataset
  • Data Models
  • Profile Models
  • Rule & Finding Models
  • Review Models
  • Score Models
  • Leakage Models
  • Diff Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • review
  • diff
  • score
  • plan
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
DocsGuide

Getting Started

  • Introduction
  • Installation
  • Quick Start
  • Tutorial Notebooks
  • Benchmarks
  • Development Setup
  • Contributing

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine
  • Dataset Review Engine
  • ML Readiness Score
  • Target Leakage Detection
  • Dataset Diff Engine
  • Target Column Concept
  • Mental Model & Workflow
  • Interpreting Findings
  • Workflow Cheat Sheet
  • Beginner Glossary

Python SDK

  • load()
  • profile()
  • analyze()
  • review()
  • diff()
  • score()
  • plan()
  • Dataset
  • Data Models
  • Profile Models
  • Rule & Finding Models
  • Review Models
  • Score Models
  • Leakage Models
  • Diff Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • review
  • diff
  • score
  • plan
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
HomeDocsReview Models

Python SDK

Review Models

SDK Reference: review engine output objects

fs.review() composes the Profiling and Rule Engines into one structured review. It profiles once, computes rule findings once, then dispatches every enabled reviewer against that frozen context. The result is a single frozen ReviewResult.

ReviewResult

python
1@dataclass(frozen=True, slots=True)
2class ReviewResult:
3 engine_version: str # "0.4.0"
4 dataset_summary: DatasetSummary
5 generated_at: datetime # UTC
6 sections: Sequence[ReviewSection]
7 recommendations: Sequence[Recommendation] # ranked, cross-section fix list
8 overall_summary: str
9 score: MLReadinessScore | None
10 diff: DatasetDiffResult | None = None # populated when previous snapshot provided
11
12 def to_dict(self) -> dict[str, Any]: ...

Sections are ordered from most severe (critical) to least (passed). score is populated by the review when at least one scoring dimension is applicable; otherwise it is None.

ReviewSection

python
1@dataclass(frozen=True, slots=True)
2class ReviewSection:
3 id: str
4 title: str
5 category: ReviewCategory
6 severity: Severity
7 findings: Sequence[RuleFinding]
8 narrative: str | None = None
9 recommendations: Sequence[Any] = ()
10
11 def to_dict(self) -> dict[str, Any]: ...

The section severity is the highest severity among its findings, or PASSED when the section is clean.

ReviewCategory and Severity

python
1class ReviewCategory(Enum):
2 SCHEMA = "schema"
3 QUALITY = "quality"
4 LEAKAGE = "leakage"
5 DIFF = "diff"
6 FEATURE_QUALITY = "feature_quality"
7 CUSTOM = "custom"
8
9
10class Severity(Enum):
11 CRITICAL = "critical"
12 WARNING = "warning"
13 INFO = "info"
14 PASSED = "passed"

DIFF, FEATURE_QUALITY, and CUSTOM are reserved categories. The built-in reviewers currently emit schema, quality, leakage, and diff (when a previous snapshot is provided) sections; the FeatureQualityReviewer emits its findings under the quality category.

Built-in Reviewers

Ten reviewers ship out of the box. They are configurable via the reviewer_config argument of fs.review(), keyed by reviewer ID:

Reviewer IDSectionCategoryConfig Keys (defaults)
review.schema.healthSchema Healthschema—
review.schema.typesData Typesschemaidentifier_min_count=10
review.quality.missingnessMissing Valuesqualitythreshold=20.0
review.quality.duplicatesDuplicate Rowsqualitythreshold=10.0
review.quality.constantsConstant Columnsquality—
review.quality.cardinalityHigh Cardinalityqualitythreshold=0.50, min_cardinality=20
review.quality.basic_statisticsBasic Statisticsqualityskew_threshold=2.0, kurtosis_threshold=10.0
review.leakageLeakage Detectionleakagedetectors=None (built-in set)
review.diffDataset Diffdiffrequires previous snapshot
review.quality.feature_qualityFeature Qualityqualityvariance_threshold=1e-10, correlation_threshold=0.95, min_target_correlation=0.05

The schema health reviewer surfaces fully empty columns (via FullyEmptyColumnsRule) plus structural warnings for empty datasets. The missingness reviewer intentionally excludes fully empty columns so each issue is reported exactly once. The data types reviewer flags numeric columns where every non-null value is distinct (identifier-like) and columns classified as free text. The feature quality reviewer flags near-constant numeric columns, highly correlated redundant column pairs, and low-signal high-cardinality columns. The leakage reviewer dispatches the pattern detectors documented on the Leakage Models page. The diff reviewer activates only when a previous snapshot is provided and compares the two profiles using the standalone Dataset Diff Engine.

Configuring Reviewers

python
1import featuresmith as fs
2
3result = fs.review(
4 "train.csv",
5 target_column="churn",
6 reviewer_config={
7 "review.quality.missingness": {"threshold": 25.0},
8 "review.quality.cardinality": {"threshold": 0.40},
9 },
10)
11
12for section in result.sections:
13 print(f"{section.severity.value.upper()} - {section.title}: {len(section.findings)} finding(s)")

Explore

  • Quick Start
  • Python SDK
  • CLI Reference
  • Examples
Featuresmith Icon
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 by Aditya Gangwani in the open.