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.AnthropicFormat[source]

Bases: TypedDict

Anthropic fine-tuning format.

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

Bases: TypedDict

Result of bivariate analysis.

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

Bases: TypedDict

Result of causal analysis.

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

Bases: TypedDict

Standard JSONL format with provenance.

answer: str
metadata: dict[str, Any]
question: str
class statqa.types.OpenAIFormat[source]

Bases: TypedDict

OpenAI fine-tuning format.

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

Bases: TypedDict

Question-answer pair with provenance metadata.

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

Bases: TypedDict

Result of temporal analysis.

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

Bases: TypedDict

Result of univariate analysis.

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