Types

Type definitions and structured data models.

Type Definitions

TypedDict definitions for structured analysis results.

Type definitions for statqa package.

This module contains TypedDict definitions for structured data to provide better type safety than generic dict[str, Any].

class statqa.types.UnivariateResult[source]

Bases: TypedDict

Result of univariate analysis.

variable: str
label: str
variable_type: str
total_count: int
missing_count: int
missing_percentage: float
mean: float
median: float
std: float
min: float
max: float
q25: float
q75: float
iqr: float
skewness: float
kurtosis: float
robust_mean: float
mad: float
normality_test: dict[str, Any]
outliers: dict[str, Any]
mode: str | int
mode_count: int
unique_count: int
diversity_index: float
frequencies: dict[str, int]
analysis_type: Literal['numeric', 'categorical']
formatted_insight: str
class statqa.types.BivariateResult[source]

Bases: TypedDict

Result of bivariate analysis.

var1: str
var2: str
var1_label: str
var2_label: str
analysis_type: Literal['numeric_numeric', 'categorical_categorical', 'categorical_numeric']
sample_size: int
pearson: dict[str, Any]
spearman: dict[str, Any]
chi_square: dict[str, Any]
cramers_v: float
contingency_table: dict[str, Any]
t_test: dict[str, Any]
anova: dict[str, Any]
effect_size: float
effect_size_interpretation: str
significant: bool
formatted_insight: str
class statqa.types.QAPair[source]

Bases: TypedDict

Question-answer pair with provenance metadata.

question: str
answer: str
context: str
generated_at: str
tool: str
tool_version: str
generation_method: Literal['template', 'llm_paraphrase']
analysis_type: str
analyzer: str
llm_model: str | None
variable_name: str | None
variable_label: str | None
analysis_result: dict[str, Any]
class statqa.types.TemporalResult[source]

Bases: TypedDict

Result of temporal analysis.

variable: str
label: str
time_variable: str | None
analysis_type: Literal['temporal_trend', 'change_point', 'seasonality']
trend: Literal['increasing', 'decreasing', 'stable', 'insufficient_data']
tau: float
p_value: float
trend_significance: bool
change_points: list[dict[str, Any]]
seasonal_component: dict[str, Any]
formatted_insight: str
class statqa.types.CausalResult[source]

Bases: TypedDict

Result of causal analysis.

treatment: str
outcome: str
confounders: list[str]
analysis_type: Literal['treatment_effect', 'instrumental_variable', 'regression_discontinuity']
ate: float
ate_ci_lower: float
ate_ci_upper: float
effect_significant: bool
regression_results: dict[str, Any]
formatted_insight: str
class statqa.types.OpenAIFormat[source]

Bases: TypedDict

OpenAI fine-tuning format.

prompt: str
completion: str
class statqa.types.AnthropicFormat[source]

Bases: TypedDict

Anthropic fine-tuning format.

messages: list[dict[str, str]]
class statqa.types.JSONLFormat[source]

Bases: TypedDict

Standard JSONL format with provenance.

question: str
answer: str
metadata: dict[str, Any]