Source code for memcachio.errors
from __future__ import annotations
from typing import TYPE_CHECKING
from .types import SingleMemcachedInstanceEndpoint
if TYPE_CHECKING:
pass
[docs]
class MemcachedError(Exception):
"""
Base exception for any errors raised by the memcached
servers
"""
pass
[docs]
class ClientError(MemcachedError):
"""
Raised when memcached responds with ``CLIENT_ERROR``
"""
pass
[docs]
class ServerError(MemcachedError):
"""
Raised when memcached responds with ``SERVER_ERROR``
"""
pass
class NotEnoughData(Exception):
"""
:meta private:
"""
def __init__(self, data_read: int):
self.data_read = data_read
super().__init__()
[docs]
class MemcachioConnectionError(ConnectionError):
"""
Base exception for any connection errors encountered.
"""
#: The memcached server where the connection error originated from
endpoint: SingleMemcachedInstanceEndpoint
def __init__(self, message: str, endpoint: SingleMemcachedInstanceEndpoint):
self.endpoint = endpoint
super().__init__(f"{message or 'Connection error'} (memcached server: {endpoint})")
[docs]
class ConnectionNotAvailable(MemcachioConnectionError):
"""
Raised when a connection couldn't be acquired from the pool within
the configured timeout
"""
def __init__(self, endpoint: SingleMemcachedInstanceEndpoint, timeout: float):
message = f"Unable to get a connection from the pool in {timeout} seconds"
super().__init__(message, endpoint=endpoint)
[docs]
class NoAvailableNodes(ValueError):
"""
Raised when no nodes are available in the cluster
"""
pass
[docs]
class AutoDiscoveryError(MemcachedError):
"""
Raised when the response for autodiscovery is invalid
"""
pass