Coverage for src \ sec_report_kit \ services \ summarize.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.14.0, created at 2026-05-13 08:06 +0530

1from __future__ import annotations 

2 

3from collections.abc import Iterable 

4 

5from sec_report_kit.models import Finding 

6from sec_report_kit.services.normalize import SEVERITY_ORDER 

7 

8 

9def sort_findings(findings: Iterable[Finding]) -> list[Finding]: 

10 return sorted( 

11 findings, 

12 key=lambda item: ( 

13 SEVERITY_ORDER[item.severity], 

14 item.package.lower(), 

15 item.vulnerability_id.lower(), 

16 ), 

17 ) 

18 

19 

20def count_by_severity(findings: Iterable[Finding]) -> dict[str, int]: 

21 counts = {"CRITICAL": 0, "HIGH": 0, "MEDIUM": 0, "LOW": 0, "UNKNOWN": 0} 

22 for finding in findings: 

23 counts[finding.severity] += 1 

24 return counts