exiv2._error

Exiv2 error codes and log messages.

Classes

ErrorCode

Complete list of all Exiv2 error codes.

LogMsg

Class for a log message, used by the library.

Exceptions

Exiv2Error

Python exception raised by exiv2 library errors.

class ErrorCode

Bases: IntEnum

Complete list of all Exiv2 error codes.

kerAliasesNotSupported = 48
kerArithmeticOverflow = 61
kerCallFailed = 3
kerCorruptedMetadata = 60
kerDataAreaValueTooLarge = 26
kerDataSourceOpenFailed = 10
kerDecodeLangAltPropertyFailed = 42
kerDecodeLangAltQualifierFailed = 43
kerEncodeLangAltPropertyFailed = 44
kerErrorCount = 64
kerErrorMessage = 2
kerFailedToMapFileForReadWrite = 17
kerFailedToReadImageData = 15
kerFileContainsUnknownImageType = 12
kerFileOpenFailed = 11
kerFileRenameFailed = 18
kerFunctionNotSupported = 35
kerGeneralError = 1
kerImageWriteFailed = 22
kerInputDataReadFailed = 21
kerInvalidCharset = 29
kerInvalidDataset = 5
kerInvalidIccProfile = 54
kerInvalidIconvEncoding = 63
kerInvalidIfdId = 24
kerInvalidKey = 7
kerInvalidKeyXmpValue = 53
kerInvalidLangAltValue = 58
kerInvalidMalloc = 59
kerInvalidRecord = 6
kerInvalidSettingForImage = 33
kerInvalidTag = 8
kerInvalidTypeValue = 57
kerInvalidXMP = 55
kerInvalidXmpText = 49
kerMallocFailed = 62
kerMemoryContainsUnknownImageType = 13
kerMemoryTransferFailed = 20
kerMultipleTiffArrayElementTagsInDirectory = 51
kerNoImageInInputData = 23
kerNoNamespaceForPrefix = 47
kerNoNamespaceInfoForXmpPrefix = 36
kerNoPrefixForNamespace = 37
kerNotACrwImage = 34
kerNotAJpeg = 16
kerNotAnImage = 4
kerOffsetOutOfRange = 27
kerPropertyNameIdentificationFailed = 45
kerSchemaNamespaceNotRegistered = 46
kerSuccess = 0
kerTiffDirectoryTooLarge = 56
kerTooLargeJpegSegment = 38
kerTooManyTiffDirectoryEntries = 50
kerTransferFailed = 19
kerUnhandledXmpNode = 40
kerUnhandledXmpdatum = 39
kerUnsupportedDataAreaOffsetType = 28
kerUnsupportedDateFormat = 30
kerUnsupportedImageType = 14
kerUnsupportedTimeFormat = 31
kerValueNotSet = 9
kerValueTooLarge = 25
kerWritingImageFormatUnsupported = 32
kerWrongTiffArrayElementTagType = 52
kerXMPToolkitError = 41
exception Exiv2Error

Bases: Exception

Python exception raised by exiv2 library errors.

Variables:
  • code (ErrorCode) – The Exiv2 error code that caused the exception.

  • message (str) – The message associated with the exception.

class LogMsg

Bases: SwigPyObject

Class for a log message, used by the library. Applications can set the log level and provide a customer log message handler (callback function).

This class is meant to be used as a temporary object with the related macro-magic like this:

EXV_WARNING << "Warning! Something looks fishy.\n";

which translates to

if (LogMsg::warn >= LogMsg::level() && LogMsg::handler())
    LogMsg(LogMsg::warn).os() << "Warning! Something looks fishy.\n";

The macros EXV_DEBUG, EXV_INFO, EXV_WARNING and EXV_ERROR are shorthands and ensure efficient use of the logging facility: If a log message doesn’t need to be generated because of the log level setting, the temp object is not even created.

Caveat: The entire log message is not processed in this case. So don’t make that call any logic that always needs to be executed.

class Level

Bases: IntEnum

Defined log levels.

To suppress all log messages, either set the log level to mute or set the log message handler to None.

debug = 0
error = 3
info = 1
mute = 4
warn = 2
defaultHandler = <Swig Object of type 'void (*)(int,char const *)'>
static handler()

Return the current log message handler

static level()

Return the current log level

pythonHandler = <Swig Object of type 'void (*)(int,char const *)'>
static setHandler()

Set the log message handler. The default handler writes log messages to standard error. To suppress all log messages, set the log message handler to 0 (or set the log level to mute).

static setLevel()

Set the log level. Only log messages with a level greater or equal level are sent to the log message handler. Default log level is warn. To suppress all log messages, set the log level to mute (or set the log message handler to 0).