diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-02-19 14:52:21 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-02-19 14:52:21 +0000 |
commit | d1772d410235592b482e3b08b1863f6624d9fe6b (patch) | |
tree | accfb4b99c32e5e435089f8023d62e67a6951603 /deluge/error.py | |
parent | Initial commit. (diff) | |
download | deluge-d1772d410235592b482e3b08b1863f6624d9fe6b.tar.xz deluge-d1772d410235592b482e3b08b1863f6624d9fe6b.zip |
Adding upstream version 2.0.3.upstream/2.0.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'deluge/error.py')
-rw-r--r-- | deluge/error.py | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/deluge/error.py b/deluge/error.py new file mode 100644 index 0000000..8705fdf --- /dev/null +++ b/deluge/error.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2008 Andrew Resch <andrewresch@gmail.com> +# Copyright (C) 2011 Pedro Algarvio <pedro@algarvio.me> +# +# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with +# the additional special exception to link portions of this program with the OpenSSL library. +# See LICENSE for more details. +# + + +from __future__ import unicode_literals + + +class DelugeError(Exception): + def __new__(cls, *args, **kwargs): + inst = super(DelugeError, cls).__new__(cls, *args, **kwargs) + inst._args = args + inst._kwargs = kwargs + return inst + + def __init__(self, message=None): + super(DelugeError, self).__init__(message) + self.message = message + + def __str__(self): + return self.message + + +class DaemonRunningError(DelugeError): + pass + + +class InvalidTorrentError(DelugeError): + pass + + +class AddTorrentError(DelugeError): + pass + + +class InvalidPathError(DelugeError): + pass + + +class WrappedException(DelugeError): + def __init__(self, message, exception_type, traceback): + super(WrappedException, self).__init__(message) + self.type = exception_type + self.traceback = traceback + + def __str__(self): + return '%s\n%s' % (self.message, self.traceback) + + +class _ClientSideRecreateError(DelugeError): + pass + + +class IncompatibleClient(_ClientSideRecreateError): + def __init__(self, daemon_version): + self.daemon_version = daemon_version + msg = ( + 'Your deluge client is not compatible with the daemon. ' + 'Please upgrade your client to %(daemon_version)s' + ) % {'daemon_version': self.daemon_version} + super(IncompatibleClient, self).__init__(message=msg) + + +class NotAuthorizedError(_ClientSideRecreateError): + def __init__(self, current_level, required_level): + msg = ('Auth level too low: %(current_level)s < %(required_level)s') % { + 'current_level': current_level, + 'required_level': required_level, + } + super(NotAuthorizedError, self).__init__(message=msg) + self.current_level = current_level + self.required_level = required_level + + +class _UsernameBasedPasstroughError(_ClientSideRecreateError): + def __init__(self, message, username): + super(_UsernameBasedPasstroughError, self).__init__(message) + self.username = username + + +class BadLoginError(_UsernameBasedPasstroughError): + pass + + +class AuthenticationRequired(_UsernameBasedPasstroughError): + pass + + +class AuthManagerError(_UsernameBasedPasstroughError): + pass |