featuresmith
  • Docs
  • SDK
  • CLI
  • Examples
  • Roadmap
v0.1.0
Documentation

Getting Started

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

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine

Python SDK

  • load()
  • profile()
  • analyze()
  • Data Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
DocsGuide

Getting Started

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

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine

Python SDK

  • load()
  • profile()
  • analyze()
  • Data Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
HomeDocsData Models

Python SDK

Data Models

SDK Reference: strongly-typed data structures

Featuresmith uses Python dataclasses with frozen=True to represent structures. This ensures they are read-only and safely serializable.

ProfileResult

The output returned from fs.profile().

python
1@dataclass(frozen=True, slots=True)
2class ProfileResult:
3 dataset_summary: DatasetSummary
4 column_profiles: Mapping[str, ColumnProfile]
5 numeric_profiles: Mapping[str, NumericProfile]
6 categorical_profiles: Mapping[str, CategoricalProfile]
7 datetime_profiles: Mapping[str, DatetimeProfile]
8 text_profiles: Mapping[str, TextProfile]
9 missing_value_summary: MissingValueSummary
10 duplicate_summary: DuplicateSummary
11 correlation_summary: CorrelationSummary
12 dataset_metadata: DatasetMetadata
13 execution_metadata: ExecutionMetadata
14
15 def to_dict(self) -> dict[str, Any]:
16 """Convert result to a standard serializable dictionary."""

RuleFinding

A single issue identified by the rules auditing step.

python
1@dataclass(frozen=True, slots=True)
2class RuleFinding:
3 rule_id: str
4 rule_name: str
5 category: str # "quality" | "statistical" | "leakage"
6 severity: str # "info" | "warning" | "critical"
7 column_name: str | None
8 title: str
9 description: str
10 evidence: Mapping[str, Any]
11 confidence: float = 1.0
12 id: str = ... # Auto-generated UUID string
13 metadata: Mapping[str, Any] = ... # Extra key-value metadata

RuleResult

The aggregate output returned from fs.analyze().

python
1@dataclass(frozen=True, slots=True)
2class RuleResult:
3 profile: ProfileResult
4 findings: Sequence[RuleFinding]
5 executed_rules: Sequence[str]
6 execution_time_ms: float
7 failed_rules: Mapping[str, str] # Rule ID -> Exception traceback mapping
8
9 def to_dict(self) -> dict[str, Any]:
10 """Convert result to a standard serializable dictionary."""

Explore

  • Quick Start
  • Python SDK
  • CLI Reference
  • Examples
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.