41 lines
1 KiB
Python
41 lines
1 KiB
Python
|
|
"""
|
||
|
|
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
|