Coverage for lintro / enums / semgrep_enums.py: 100%
14 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"""Semgrep enums for severity levels."""
3from __future__ import annotations
5from enum import StrEnum, auto
8class SemgrepSeverity(StrEnum):
9 """Supported severity levels for Semgrep filtering."""
11 INFO = auto()
12 WARNING = auto()
13 ERROR = auto()
16def normalize_semgrep_severity(value: str | SemgrepSeverity) -> SemgrepSeverity:
17 """Normalize user input to a SemgrepSeverity.
19 Args:
20 value: Existing enum member or string name of the severity.
22 Returns:
23 SemgrepSeverity: Canonical enum value.
25 Raises:
26 ValueError: If the value is not a valid severity level.
27 """
28 if isinstance(value, SemgrepSeverity):
29 return value
30 try:
31 return SemgrepSeverity[value.upper()]
32 except (KeyError, AttributeError) as e:
33 valid = ", ".join(s.name for s in SemgrepSeverity)
34 raise ValueError(
35 f"Invalid Semgrep severity '{value}'. Valid values: {valid}",
36 ) from e