Source code for kerb.parsing.types

"""Core types for parsing utilities.

This module defines the fundamental enums and data classes used across
the parsing subpackage.
"""

from dataclasses import dataclass, field
from enum import Enum
from typing import Any, List, Optional


[docs] class ParseMode(Enum): """Parsing mode for extracting structured data.""" STRICT = "strict" # Fail on any parsing error LENIENT = "lenient" # Try to fix common issues BEST_EFFORT = "best_effort" # Extract what's possible
[docs] class ValidationLevel(Enum): """Validation strictness level.""" NONE = "none" # No validation BASIC = "basic" # Basic type checking SCHEMA = "schema" # Full schema validation STRICT = "strict" # Strict schema + additional constraints
[docs] @dataclass class ParseResult: """Result from parsing operation.""" success: bool data: Any = None error: Optional[str] = None fixed: bool = False # Whether output was auto-fixed original: Optional[str] = None warnings: List[str] = field(default_factory=list)
[docs] @dataclass class ValidationResult: """Result from validation operation.""" valid: bool errors: List[str] = field(default_factory=list) warnings: List[str] = field(default_factory=list) data: Any = None