Coverage for src/dataknobs_data/vector/exceptions.py: 50%
26 statements
« prev ^ index » next coverage.py v7.10.3, created at 2025-08-31 07:20 -0600
« prev ^ index » next coverage.py v7.10.3, created at 2025-08-31 07:20 -0600
1"""Vector-specific exceptions."""
3from __future__ import annotations
6class VectorError(Exception):
7 """Base exception for vector operations."""
9 pass
12class VectorDimensionError(VectorError):
13 """Raised when vector dimensions don't match expectations."""
15 def __init__(self, expected: int, actual: int, field_name: str | None = None):
16 """Initialize dimension error.
18 Args:
19 expected: Expected number of dimensions
20 actual: Actual number of dimensions
21 field_name: Optional field name for context
22 """
23 self.expected = expected
24 self.actual = actual
25 self.field_name = field_name
27 message = f"Vector dimension mismatch: expected {expected}, got {actual}"
28 if field_name:
29 message = f"{message} for field '{field_name}'"
31 super().__init__(message)
34class VectorBackendError(VectorError):
35 """Raised when vector backend operations fail."""
37 pass
40class VectorIndexError(VectorError):
41 """Raised when vector index operations fail."""
43 pass
46class VectorNotSupportedError(VectorError):
47 """Raised when vector operations are not supported by backend."""
49 def __init__(self, backend: str, operation: str | None = None):
50 """Initialize not supported error.
52 Args:
53 backend: Name of the backend
54 operation: Optional specific operation that's not supported
55 """
56 self.backend = backend
57 self.operation = operation
59 message = f"Vector operations not supported by {backend} backend"
60 if operation:
61 message = f"{message}: {operation}"
63 super().__init__(message)
66class VectorValidationError(VectorError):
67 """Raised when vector validation fails."""
69 pass