From 8c5ab77f8cbd6b2963dc22fb079502115b2f38ee Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Thu, 29 Jan 2026 21:21:21 +0000 Subject: [PATCH] Add source models --- src/models/severity.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/models/severity.py diff --git a/src/models/severity.py b/src/models/severity.py new file mode 100644 index 0000000..39144e0 --- /dev/null +++ b/src/models/severity.py @@ -0,0 +1,38 @@ +"""Severity levels for validation findings.""" + +from enum import Enum + + +class Severity(Enum): + """Severity levels for validation findings.""" + + LOW = "low" + MEDIUM = "medium" + HIGH = "high" + CRITICAL = "critical" + + @classmethod + def from_string(cls, value: str) -> "Severity": + """Create severity from string value.""" + value_lower = value.lower() + for severity in cls: + if severity.value == value_lower: + return severity + raise ValueError(f"Unknown severity level: {value}") + + def __lt__(self, other: "Severity") -> bool: + """Compare severity levels.""" + order = [Severity.LOW, Severity.MEDIUM, Severity.HIGH, Severity.CRITICAL] + return order.index(self) < order.index(other) + + def __le__(self, other: "Severity") -> bool: + """Compare severity levels (less than or equal).""" + return self == other or self < other + + def __gt__(self, other: "Severity") -> bool: + """Compare severity levels (greater than).""" + return not self <= other + + def __ge__(self, other: "Severity") -> bool: + """Compare severity levels (greater than or equal).""" + return not self < other