interfaces.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. class IException(Interface): pass
  19. class IStandardError(IException): pass
  20. class IWarning(IException): pass
  21. class ISyntaxError(IStandardError): pass
  22. class ILookupError(IStandardError): pass
  23. class IValueError(IStandardError): pass
  24. class IRuntimeError(IStandardError): pass
  25. class IArithmeticError(IStandardError): pass
  26. class IAssertionError(IStandardError): pass
  27. class IAttributeError(IStandardError): pass
  28. class IDeprecationWarning(IWarning): pass
  29. class IEOFError(IStandardError): pass
  30. class IEnvironmentError(IStandardError): pass
  31. class IFloatingPointError(IArithmeticError): pass
  32. class IIOError(IEnvironmentError): pass
  33. class IImportError(IStandardError): pass
  34. class IIndentationError(ISyntaxError): pass
  35. class IIndexError(ILookupError): pass
  36. class IKeyError(ILookupError): pass
  37. class IKeyboardInterrupt(IStandardError): pass
  38. class IMemoryError(IStandardError): pass
  39. class INameError(IStandardError): pass
  40. class INotImplementedError(IRuntimeError): pass
  41. class IOSError(IEnvironmentError): pass
  42. class IOverflowError(IArithmeticError): pass
  43. class IOverflowWarning(IWarning): pass
  44. class IReferenceError(IStandardError): pass
  45. class IRuntimeWarning(IWarning): pass
  46. class IStopIteration(IException): pass
  47. class ISyntaxWarning(IWarning): pass
  48. class ISystemError(IStandardError): pass
  49. class ISystemExit(IException): pass
  50. class ITabError(IIndentationError): pass
  51. class ITypeError(IStandardError): pass
  52. class IUnboundLocalError(INameError): pass
  53. class IUnicodeError(IValueError): pass
  54. class IUserWarning(IWarning): pass
  55. class IZeroDivisionError(IArithmeticError): pass
  56. classImplements(ArithmeticError, IArithmeticError)
  57. classImplements(AssertionError, IAssertionError)
  58. classImplements(AttributeError, IAttributeError)
  59. classImplements(DeprecationWarning, IDeprecationWarning)
  60. classImplements(EnvironmentError, IEnvironmentError)
  61. classImplements(EOFError, IEOFError)
  62. classImplements(Exception, IException)
  63. classImplements(FloatingPointError, IFloatingPointError)
  64. classImplements(ImportError, IImportError)
  65. classImplements(IndentationError, IIndentationError)
  66. classImplements(IndexError, IIndexError)
  67. classImplements(IOError, IIOError)
  68. classImplements(KeyboardInterrupt, IKeyboardInterrupt)
  69. classImplements(KeyError, IKeyError)
  70. classImplements(LookupError, ILookupError)
  71. classImplements(MemoryError, IMemoryError)
  72. classImplements(NameError, INameError)
  73. classImplements(NotImplementedError, INotImplementedError)
  74. classImplements(OSError, IOSError)
  75. classImplements(OverflowError, IOverflowError)
  76. try:
  77. classImplements(OverflowWarning, IOverflowWarning)
  78. except NameError: #pragma NO COVER
  79. pass # OverflowWarning was removed in Python 2.5
  80. classImplements(ReferenceError, IReferenceError)
  81. classImplements(RuntimeError, IRuntimeError)
  82. classImplements(RuntimeWarning, IRuntimeWarning)
  83. try:
  84. classImplements(StandardError, IStandardError)
  85. except NameError: #pragma NO COVER
  86. pass # StandardError does not exist in Python 3
  87. classImplements(StopIteration, IStopIteration)
  88. classImplements(SyntaxError, ISyntaxError)
  89. classImplements(SyntaxWarning, ISyntaxWarning)
  90. classImplements(SystemError, ISystemError)
  91. classImplements(SystemExit, ISystemExit)
  92. classImplements(TabError, ITabError)
  93. classImplements(TypeError, ITypeError)
  94. classImplements(UnboundLocalError, IUnboundLocalError)
  95. classImplements(UnicodeError, IUnicodeError)
  96. classImplements(UserWarning, IUserWarning)
  97. classImplements(ValueError, IValueError)
  98. classImplements(Warning, IWarning)
  99. classImplements(ZeroDivisionError, IZeroDivisionError)