Coverage for lintro / ai / summary_params.py: 100%
13 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Parameter objects for AI summary generation.
3Groups the retry/provider parameters shared by ``generate_summary``
4and ``generate_post_fix_summary`` into a single frozen dataclass.
5"""
7from __future__ import annotations
9from dataclasses import dataclass, field
10from pathlib import Path
13@dataclass(frozen=True)
14class SummaryGenParams:
15 """Immutable parameter bundle for summary generation.
17 Attributes:
18 max_tokens: Maximum tokens for the response.
19 workspace_root: Root for provider-safe path redaction.
20 timeout: Request timeout in seconds per API call.
21 max_retries: Maximum retry attempts for transient failures.
22 base_delay: Initial retry delay in seconds.
23 max_delay: Maximum retry delay in seconds.
24 backoff_factor: Retry backoff multiplier.
25 fallback_models: Ordered fallback model identifiers.
26 """
28 max_tokens: int = 2048
29 workspace_root: Path | None = None
30 timeout: float = 60.0
31 max_retries: int = 2
32 base_delay: float | None = None
33 max_delay: float | None = None
34 backoff_factor: float | None = None
35 fallback_models: list[str] = field(default_factory=list)