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
« prev ^ index » next coverage.py v7.14.0, created at 2026-05-13 08:06 +0530
1from __future__ import annotations
3from collections.abc import Iterable
5from sec_report_kit.models import Finding
6from sec_report_kit.services.normalize import SEVERITY_ORDER
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 )
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