exceptions.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. "Core exceptions raised by the Redis client"
  2. from redis._compat import unicode
  3. class RedisError(Exception):
  4. pass
  5. # python 2.5 doesn't implement Exception.__unicode__. Add it here to all
  6. # our exception types
  7. if not hasattr(RedisError, '__unicode__'):
  8. def __unicode__(self):
  9. if isinstance(self.args[0], unicode):
  10. return self.args[0]
  11. return unicode(self.args[0])
  12. RedisError.__unicode__ = __unicode__
  13. class AuthenticationError(RedisError):
  14. pass
  15. class ConnectionError(RedisError):
  16. pass
  17. class TimeoutError(RedisError):
  18. pass
  19. class BusyLoadingError(ConnectionError):
  20. pass
  21. class InvalidResponse(RedisError):
  22. pass
  23. class ResponseError(RedisError):
  24. pass
  25. class DataError(RedisError):
  26. pass
  27. class PubSubError(RedisError):
  28. pass
  29. class WatchError(RedisError):
  30. pass
  31. class NoScriptError(ResponseError):
  32. pass
  33. class ExecAbortError(ResponseError):
  34. pass
  35. class ReadOnlyError(ResponseError):
  36. pass
  37. class LockError(RedisError, ValueError):
  38. "Errors acquiring or releasing a lock"
  39. # NOTE: For backwards compatability, this class derives from ValueError.
  40. # This was originally chosen to behave like threading.Lock.
  41. pass