############################################################################## # # Copyright (c) 2003 Zope Foundation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Interfaces for standard python exceptions """ from __future__ import absolute_import from .. import Interface from .. import classImplements class IException(Interface): pass class IStandardError(IException): pass class IWarning(IException): pass class ISyntaxError(IStandardError): pass class ILookupError(IStandardError): pass class IValueError(IStandardError): pass class IRuntimeError(IStandardError): pass class IArithmeticError(IStandardError): pass class IAssertionError(IStandardError): pass class IAttributeError(IStandardError): pass class IDeprecationWarning(IWarning): pass class IEOFError(IStandardError): pass class IEnvironmentError(IStandardError): pass class IFloatingPointError(IArithmeticError): pass class IIOError(IEnvironmentError): pass class IImportError(IStandardError): pass class IIndentationError(ISyntaxError): pass class IIndexError(ILookupError): pass class IKeyError(ILookupError): pass class IKeyboardInterrupt(IStandardError): pass class IMemoryError(IStandardError): pass class INameError(IStandardError): pass class INotImplementedError(IRuntimeError): pass class IOSError(IEnvironmentError): pass class IOverflowError(IArithmeticError): pass class IOverflowWarning(IWarning): pass class IReferenceError(IStandardError): pass class IRuntimeWarning(IWarning): pass class IStopIteration(IException): pass class ISyntaxWarning(IWarning): pass class ISystemError(IStandardError): pass class ISystemExit(IException): pass class ITabError(IIndentationError): pass class ITypeError(IStandardError): pass class IUnboundLocalError(INameError): pass class IUnicodeError(IValueError): pass class IUserWarning(IWarning): pass class IZeroDivisionError(IArithmeticError): pass classImplements(ArithmeticError, IArithmeticError) classImplements(AssertionError, IAssertionError) classImplements(AttributeError, IAttributeError) classImplements(DeprecationWarning, IDeprecationWarning) classImplements(EnvironmentError, IEnvironmentError) classImplements(EOFError, IEOFError) classImplements(Exception, IException) classImplements(FloatingPointError, IFloatingPointError) classImplements(ImportError, IImportError) classImplements(IndentationError, IIndentationError) classImplements(IndexError, IIndexError) classImplements(IOError, IIOError) classImplements(KeyboardInterrupt, IKeyboardInterrupt) classImplements(KeyError, IKeyError) classImplements(LookupError, ILookupError) classImplements(MemoryError, IMemoryError) classImplements(NameError, INameError) classImplements(NotImplementedError, INotImplementedError) classImplements(OSError, IOSError) classImplements(OverflowError, IOverflowError) try: classImplements(OverflowWarning, IOverflowWarning) except NameError: #pragma NO COVER pass # OverflowWarning was removed in Python 2.5 classImplements(ReferenceError, IReferenceError) classImplements(RuntimeError, IRuntimeError) classImplements(RuntimeWarning, IRuntimeWarning) try: classImplements(StandardError, IStandardError) except NameError: #pragma NO COVER pass # StandardError does not exist in Python 3 classImplements(StopIteration, IStopIteration) classImplements(SyntaxError, ISyntaxError) classImplements(SyntaxWarning, ISyntaxWarning) classImplements(SystemError, ISystemError) classImplements(SystemExit, ISystemExit) classImplements(TabError, ITabError) classImplements(TypeError, ITypeError) classImplements(UnboundLocalError, IUnboundLocalError) classImplements(UnicodeError, IUnicodeError) classImplements(UserWarning, IUserWarning) classImplements(ValueError, IValueError) classImplements(Warning, IWarning) classImplements(ZeroDivisionError, IZeroDivisionError)