Initial upload: config-converter-cli v1.0.0

This commit is contained in:
2026-02-01 22:26:06 +00:00
parent 2da31df0fd
commit 6ab670fc8a

View File

@@ -0,0 +1,71 @@
"""Custom exceptions for config-converter-cli."""
from typing import Any, Optional
class ConfigConverterError(Exception):
"""Base exception for config converter errors."""
def __init__(self, message: str, details: Optional[dict] = None):
super().__init__(message)
self.message = message
self.details = details or {}
class ParseError(ConfigConverterError):
"""Raised when parsing fails due to invalid syntax."""
def __init__(
self,
message: str,
line_number: Optional[int] = None,
column: Optional[int] = None,
context: Optional[str] = None,
):
details = {}
if line_number is not None:
details["line_number"] = line_number
if column is not None:
details["column"] = column
if context is not None:
details["context"] = context
super().__init__(message, details)
self.line_number = line_number
self.column = column
self.context = context
class InvalidFormatError(ConfigConverterError):
"""Raised when the input format cannot be determined or is unsupported."""
pass
class UnsupportedConversionError(ConfigConverterError):
"""Raised when a conversion direction is not supported."""
pass
class FileNotFoundError(ConfigConverterError):
"""Raised when a file cannot be found."""
pass
class QueryError(ConfigConverterError):
"""Raised when a JMESPath query fails."""
pass
class ValidationError(ConfigConverterError):
"""Raised when validation fails."""
pass
class IndentationError(ConfigConverterError):
"""Raised when indentation is invalid."""
pass