Imported Upstream version 3.8.0
[contrib/python-zope.interface.git] / src / zope / interface / common / interfaces.py
1 ##############################################################################
2 #
3 # Copyright (c) 2003 Zope Foundation and Contributors.
4 # All Rights Reserved.
5 #
6 # This software is subject to the provisions of the Zope Public License,
7 # Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
8 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
9 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
10 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
11 # FOR A PARTICULAR PURPOSE.
12 #
13 ##############################################################################
14 """Interfaces for standard python exceptions
15 """
16 from zope.interface import Interface
17 from zope.interface import classImplements
18
19 class IException(Interface): pass
20 class IStandardError(IException): pass
21 class IWarning(IException): pass
22 class ISyntaxError(IStandardError): pass
23 class ILookupError(IStandardError): pass
24 class IValueError(IStandardError): pass
25 class IRuntimeError(IStandardError): pass
26 class IArithmeticError(IStandardError): pass
27 class IAssertionError(IStandardError): pass
28 class IAttributeError(IStandardError): pass
29 class IDeprecationWarning(IWarning): pass
30 class IEOFError(IStandardError): pass
31 class IEnvironmentError(IStandardError): pass
32 class IFloatingPointError(IArithmeticError): pass
33 class IIOError(IEnvironmentError): pass
34 class IImportError(IStandardError): pass
35 class IIndentationError(ISyntaxError): pass
36 class IIndexError(ILookupError): pass
37 class IKeyError(ILookupError): pass
38 class IKeyboardInterrupt(IStandardError): pass
39 class IMemoryError(IStandardError): pass
40 class INameError(IStandardError): pass
41 class INotImplementedError(IRuntimeError): pass
42 class IOSError(IEnvironmentError): pass
43 class IOverflowError(IArithmeticError): pass
44 class IOverflowWarning(IWarning): pass
45 class IReferenceError(IStandardError): pass
46 class IRuntimeWarning(IWarning): pass
47 class IStopIteration(IException): pass
48 class ISyntaxWarning(IWarning): pass
49 class ISystemError(IStandardError): pass
50 class ISystemExit(IException): pass
51 class ITabError(IIndentationError): pass
52 class ITypeError(IStandardError): pass
53 class IUnboundLocalError(INameError): pass
54 class IUnicodeError(IValueError): pass
55 class IUserWarning(IWarning): pass
56 class IZeroDivisionError(IArithmeticError): pass
57
58 classImplements(ArithmeticError, IArithmeticError)
59 classImplements(AssertionError, IAssertionError)
60 classImplements(AttributeError, IAttributeError)
61 classImplements(DeprecationWarning, IDeprecationWarning)
62 classImplements(EnvironmentError, IEnvironmentError)
63 classImplements(EOFError, IEOFError)
64 classImplements(Exception, IException)
65 classImplements(FloatingPointError, IFloatingPointError)
66 classImplements(ImportError, IImportError)
67 classImplements(IndentationError, IIndentationError)
68 classImplements(IndexError, IIndexError)
69 classImplements(IOError, IIOError)
70 classImplements(KeyboardInterrupt, IKeyboardInterrupt)
71 classImplements(KeyError, IKeyError)
72 classImplements(LookupError, ILookupError)
73 classImplements(MemoryError, IMemoryError)
74 classImplements(NameError, INameError)
75 classImplements(NotImplementedError, INotImplementedError)
76 classImplements(OSError, IOSError)
77 classImplements(OverflowError, IOverflowError)
78 try:
79     classImplements(OverflowWarning, IOverflowWarning)
80 except NameError:
81     pass # OverflowWarning was removed in Python 2.5
82 classImplements(ReferenceError, IReferenceError)
83 classImplements(RuntimeError, IRuntimeError)
84 classImplements(RuntimeWarning, IRuntimeWarning)
85 try:
86     classImplements(StandardError, IStandardError)
87 except NameError:
88     pass # StandardError does not exist in Python 3
89 classImplements(StopIteration, IStopIteration)
90 classImplements(SyntaxError, ISyntaxError)
91 classImplements(SyntaxWarning, ISyntaxWarning)
92 classImplements(SystemError, ISystemError)
93 classImplements(SystemExit, ISystemExit)
94 classImplements(TabError, ITabError)
95 classImplements(TypeError, ITypeError)
96 classImplements(UnboundLocalError, IUnboundLocalError)
97 classImplements(UnicodeError, IUnicodeError)
98 classImplements(UserWarning, IUserWarning)
99 classImplements(ValueError, IValueError)
100 classImplements(Warning, IWarning)
101 classImplements(ZeroDivisionError, IZeroDivisionError)
102