# SAM exceptions class SAMException(IOError): """Base class for SAM exceptions""" class CantReachPeer(SAMException): """The peer exists, but cannot be reached""" class DuplicatedDest(SAMException): """The specified Destination is already in use""" class DuplicatedId(SAMException): """The nickname is already associated with a session""" class I2PError(SAMException): """A generic I2P error""" class InvalidId(SAMException): """STREAM SESSION ID doesn't exist""" class InvalidKey(SAMException): """The specified key is not valid (bad format, etc.)""" class KeyNotFound(SAMException): """The naming system can't resolve the given name""" class PeerNotFound(SAMException): """The peer cannot be found on the network""" class Timeout(SAMException): """The peer cannot be found on the network""" SAM_EXCEPTIONS = { "CANT_REACH_PEER": CantReachPeer, "DUPLICATED_DEST": DuplicatedDest, "DUPLICATED_ID": DuplicatedId, "I2P_ERROR": I2PError, "INVALID_ID": InvalidId, "INVALID_KEY": InvalidKey, "KEY_NOT_FOUND": KeyNotFound, "PEER_NOT_FOUND": PeerNotFound, "TIMEOUT": Timeout, }