markitect-main/markitect/proxy/exceptions.py

41 lines
1 KiB
Python
Raw Permalink Normal View History

"""
Proxy-specific exceptions.
Extends the MarkitectError hierarchy for proxy file operations.
"""
from typing import Optional, Dict, Any
from markitect.exceptions import MarkitectError
class ProxyError(MarkitectError):
"""Base exception for all proxy operations."""
pass
class ExtractorNotFoundError(ProxyError):
"""No extractor registered for the given file extension."""
pass
class DependencyMissingError(ProxyError):
"""An extractor's optional dependency is not installed.
Attributes:
package: The missing Python package name.
install_hint: Suggested pip install command.
"""
def __init__(
self,
message: str,
package: str = "",
install_hint: str = "",
cause: Optional[Exception] = None,
context: Optional[Dict[str, Any]] = None,
):
super().__init__(message, cause=cause, context=context)
self.package = package
self.install_hint = install_hint