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
@dataclass(frozen=True, slots=True)class ProfileResult: dataset_summary: DatasetSummary column_profiles: Mapping[str, ColumnProfile] numeric_profiles: Mapping[str, NumericProfile] categorical_profiles: Mapping[str, CategoricalProfile] datetime_profiles: Mapping[str, DatetimeProfile] text_profiles: Mapping[str, TextProfile] missing_value_summary: MissingValueSummary duplicate_summary: DuplicateSummary correlation_summary: CorrelationSummary dataset_metadata: DatasetMetadata execution_metadata: ExecutionMetadata def to_dict(self) -> dict[str, Any]: """Convert result to a standard serializable dictionary."""RuleFinding
A single issue identified by the rules auditing step.
python
@dataclass(frozen=True, slots=True)class RuleFinding: rule_id: str rule_name: str category: str # "quality" | "statistical" | "leakage" severity: str # "info" | "warning" | "critical" column_name: str | None title: str description: str evidence: Mapping[str, Any] confidence: float = 1.0 id: str = ... # Auto-generated UUID string metadata: Mapping[str, Any] = ... # Extra key-value metadataRuleResult
The aggregate output returned from fs.analyze().
python
@dataclass(frozen=True, slots=True)class RuleResult: profile: ProfileResult findings: Sequence[RuleFinding] executed_rules: Sequence[str] execution_time_ms: float failed_rules: Mapping[str, str] # Rule ID -> Exception traceback mapping def to_dict(self) -> dict[str, Any]: """Convert result to a standard serializable dictionary."""