view roundup/exceptions.py @ 8224:5913ec1673c2

refactor: extract code as method from do_import This started by trying to fix a resource error where the os.scandir iterator was not closed for some reason (it should have been exhausted and close). While the ResourceWarning is fixed with: with os.scandir() as ...: indented existing code it breaks under python2. Trying a python2 friendly option: dirscan = os.scandir() ... if hasattr(dirscan,'close'): dirscan.close() doesn't fix the resource warning. Using the 'with os.scandir()...' indented a nested block too far so I extracted it into another method. It is only this method that survives 8-(.
author John Rouillard <rouilj@ieee.org>
date Wed, 18 Dec 2024 21:49:48 -0500
parents 273c8c2b5042
children e882a5d52ae5
line wrap: on
line source

"""Exceptions for use across all Roundup components.
"""

__docformat__ = 'restructuredtext'


class RoundupException(Exception):
    pass


class LoginError(RoundupException):
    pass


class RateLimitExceeded(Exception):
    pass


class Unauthorised(RoundupException):
    pass


class RejectBase(RoundupException):
    pass


class Reject(RejectBase):
    """An auditor may raise this exception when the current create or set
    operation should be stopped.

    It is up to the specific interface invoking the create or set to
    handle this exception sanely. For example:

    - mailgw will trap and ignore Reject for file attachments and messages
    - cgi will trap and present the exception in a nice format
    """
    pass


class RejectRaw(Reject):
    """
    Performs the same function as Reject, except HTML in the message is not
    escaped when displayed to the user.
    """
    pass


class UsageError(ValueError):
    pass

# vim: set filetype=python ts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/