Coverage for little_loops / issue_history / _utils.py: 0%

10 statements  

« prev     ^ index     » next       coverage.py v7.12.0, created at 2026-03-18 16:18 -0500

1"""Shared utilities for issue_history sub-modules.""" 

2 

3from __future__ import annotations 

4 

5from pathlib import Path 

6 

7from little_loops.issue_history.models import CompletedIssue 

8 

9 

10def get_issue_content(issue: CompletedIssue, contents: dict[Path, str] | None) -> str | None: 

11 """Retrieve issue content from cache or filesystem. 

12 

13 Args: 

14 issue: The completed issue to retrieve content for 

15 contents: Optional pre-loaded content cache (path -> content) 

16 

17 Returns: 

18 Issue file content string, or None if unavailable 

19 """ 

20 if contents is not None and issue.path in contents: 

21 return contents[issue.path] 

22 try: 

23 return issue.path.read_text(encoding="utf-8") 

24 except Exception: 

25 return None