""" 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