Coverage for src/fluree_py/query/select/pydantic/warning_manager.py: 100%
10 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-02 03:03 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-02 03:03 +0000
1from dataclasses import dataclass, field
2import warnings
5@dataclass
6class WarningManager:
7 """Manages warnings for the Pydantic model processing.
9 Example:
10 >>> manager = WarningManager()
11 >>> manager.add_warning(ListOrderWarning, "Field 'items' is a list")
12 >>> manager.emit_warnings()
13 """
15 warnings_list: list[tuple[type[Warning], str]] = field(default_factory=list)
17 def add_warning(self, warning_type: type[Warning], message: str) -> None:
18 """Add a warning to the list."""
19 self.warnings_list.append((warning_type, message))
21 def emit_warnings(self) -> None:
22 """Emit all collected warnings."""
23 for warning_type, message in self.warnings_list:
24 warnings.warn(message, warning_type)