From d1772d410235592b482e3b08b1863f6624d9fe6b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 19 Feb 2023 15:52:21 +0100 Subject: Adding upstream version 2.0.3. Signed-off-by: Daniel Baumann --- deluge/error.py | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 deluge/error.py (limited to 'deluge/error.py') 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 +# Copyright (C) 2011 Pedro Algarvio +# +# 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 -- cgit v1.2.3