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

1"""Parameter objects for AI summary generation. 

2 

3Groups the retry/provider parameters shared by ``generate_summary`` 

4and ``generate_post_fix_summary`` into a single frozen dataclass. 

5""" 

6 

7from __future__ import annotations 

8 

9from dataclasses import dataclass, field 

10from pathlib import Path 

11 

12 

13@dataclass(frozen=True) 

14class SummaryGenParams: 

15 """Immutable parameter bundle for summary generation. 

16 

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 """ 

27 

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)