/usr/share/pyshared/wand/exceptions.py is in python-wand 0.3.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | """:mod:`wand.exceptions` --- Errors and warnings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This module maps MagickWand API's errors and warnings to Python's native
exceptions and warnings. You can catch all MagickWand errors using Python's
natural way to catch errors.
.. seealso::
`ImageMagick Exceptions <http://www.imagemagick.org/script/exception.php>`_
.. versionadded:: 0.1.1
"""
class WandException(Exception):
"""All Wand-related exceptions are derived from this class."""
class WandWarning(WandException, Warning):
"""Base class for Wand-related warnings."""
class WandError(WandException):
"""Base class for Wand-related errors."""
class WandFatalError(WandException):
"""Base class for Wand-related fatal errors."""
class WandLibraryVersionError(WandException):
"""Base class for Wand-related ImageMagick version errors.
.. versionadded:: 0.3.2
"""
#: (:class:`list`) A list of error/warning domains, these descriptions and
#: codes. The form of elements is like: (domain name, description, codes).
DOMAIN_MAP = [
('ResourceLimit',
'A program resource is exhausted e.g. not enough memory.',
(MemoryError,),
[300, 400, 700]),
('Type', 'A font is unavailable; a substitution may have occurred.', (),
[305, 405, 705]),
('Option', 'A command-line option was malformed.', (), [310, 410, 710]),
('Delegate', 'An ImageMagick delegate failed to complete.', (),
[315, 415, 715]),
('MissingDelegate',
'The image type can not be read or written because the appropriate; '
'delegate is missing.',
(ImportError,),
[320, 420, 720]),
('CorruptImage', 'The image file may be corrupt.',
(ValueError,), [325, 425, 725]),
('FileOpen', 'The image file could not be opened for reading or writing.',
(IOError,), [330, 430, 730]),
('Blob', 'A binary large object could not be allocated, read, or written.',
(IOError,), [335, 435, 735]),
('Stream', 'There was a problem reading or writing from a stream.',
(IOError,), [340, 440, 740]),
('Cache', 'Pixels could not be read or written to the pixel cache.',
(), [345, 445, 745]),
('Coder', 'There was a problem with an image coder.', (), [350, 450, 750]),
('Module', 'There was a problem with an image module.', (),
[355, 455, 755]),
('Draw', 'A drawing operation failed.', (), [360, 460, 760]),
('Image', 'The operation could not complete due to an incompatible image.',
(), [365, 465, 765]),
('Wand', 'There was a problem specific to the MagickWand API.', (),
[370, 470, 770]),
('Random', 'There is a problem generating a true or pseudo-random number.',
(), [375, 475, 775]),
('XServer', 'An X resource is unavailable.', (), [380, 480, 780]),
('Monitor', 'There was a problem activating the progress monitor.', (),
[385, 485, 785]),
('Registry', 'There was a problem getting or setting the registry.', (),
[390, 490, 790]),
('Configure', 'There was a problem getting a configuration file.', (),
[395, 495, 795]),
('Policy',
'A policy denies access to a delegate, coder, filter, path, or resource.',
(), [399, 499, 799])
]
#: (:class:`list`) The list of (base_class, suffix) pairs (for each code).
#: It would be zipped with :const:`DOMAIN_MAP` pairs' last element.
CODE_MAP = [
(WandWarning, 'Warning'),
(WandError, 'Error'),
(WandFatalError, 'FatalError')
]
#: (:class:`dict`) The dictionary of (code, exc_type).
TYPE_MAP = {}
for domain, description, bases, codes in DOMAIN_MAP:
for code, (base, suffix) in zip(codes, CODE_MAP):
name = domain + suffix
locals()[name] = TYPE_MAP[code] = type(name, (base,) + bases, {
'__doc__': description,
'wand_error_code': code
})
del name, base, suffix
|