forked from pool/python-exiv2
- Update to 0.12.3:
- upstream doesn't release proper changelog - Remove the exiv2_0-28-0.patch patch again. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-exiv2?expand=0&rev=20
This commit is contained in:
@@ -1,643 +0,0 @@
|
||||
---
|
||||
src/exiv2wrapper.cpp | 171 +++++++++++++++++++++++++--------------------------
|
||||
src/exiv2wrapper.hpp | 2
|
||||
2 files changed, 86 insertions(+), 87 deletions(-)
|
||||
|
||||
--- a/src/exiv2wrapper.cpp
|
||||
+++ b/src/exiv2wrapper.cpp
|
||||
@@ -51,7 +51,7 @@ using std::auto_ptr;
|
||||
// Custom macros
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
#define CHECK_METADATA_READ \
|
||||
- if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
|
||||
+ if (!_dataRead) throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, "metadata not read");
|
||||
#else
|
||||
#define CHECK_METADATA_READ \
|
||||
if (!_dataRead) throw Exiv2::Error(METADATA_NOT_READ);
|
||||
@@ -67,7 +67,7 @@ void Image::_instantiate_image()
|
||||
// If an exception is thrown, it has to be done outside of the
|
||||
// Py_{BEGIN,END}_ALLOW_THREADS block.
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
- Exiv2::Error error = Exiv2::Error(Exiv2::kerSuccess);
|
||||
+ Exiv2::Error error = Exiv2::Error(Exiv2::ErrorCode::kerSuccess);
|
||||
#else
|
||||
Exiv2::Error error(0);
|
||||
#endif
|
||||
@@ -96,7 +96,7 @@ void Image::_instantiate_image()
|
||||
// Re-acquire the GIL
|
||||
Py_END_ALLOW_THREADS
|
||||
|
||||
- if (error.code() == 0)
|
||||
+ if (error.code() == Exiv2::ErrorCode::kerSuccess)
|
||||
{
|
||||
assert(_image.get() != 0);
|
||||
_dataRead = false;
|
||||
@@ -153,7 +153,7 @@ void Image::readMetadata()
|
||||
// If an exception is thrown, it has to be done outside of the
|
||||
// Py_{BEGIN,END}_ALLOW_THREADS block.
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
- Exiv2::Error error = Exiv2::Error(Exiv2::kerSuccess);
|
||||
+ Exiv2::Error error = Exiv2::Error(Exiv2::ErrorCode::kerSuccess);
|
||||
#else
|
||||
Exiv2::Error error(0);
|
||||
#endif
|
||||
@@ -180,7 +180,7 @@ void Image::readMetadata()
|
||||
// Re-acquire the GIL
|
||||
Py_END_ALLOW_THREADS
|
||||
|
||||
- if (error.code() != 0)
|
||||
+ if (error.code() != Exiv2::ErrorCode::kerSuccess)
|
||||
{
|
||||
throw error;
|
||||
}
|
||||
@@ -193,7 +193,7 @@ void Image::writeMetadata()
|
||||
// If an exception is thrown, it has to be done outside of the
|
||||
// Py_{BEGIN,END}_ALLOW_THREADS block.
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
- Exiv2::Error error = Exiv2::Error(Exiv2::kerSuccess);
|
||||
+ Exiv2::Error error = Exiv2::Error(Exiv2::ErrorCode::kerSuccess);
|
||||
#else
|
||||
Exiv2::Error error(0);
|
||||
#endif
|
||||
@@ -216,7 +216,7 @@ void Image::writeMetadata()
|
||||
// Re-acquire the GIL
|
||||
Py_END_ALLOW_THREADS
|
||||
|
||||
- if (error.code() != 0)
|
||||
+ if (error.code() != Exiv2::ErrorCode::kerSuccess)
|
||||
{
|
||||
throw error;
|
||||
}
|
||||
@@ -263,7 +263,7 @@ const ExifTag Image::getExifTag(std::str
|
||||
if(_exifData->findKey(exifKey) == _exifData->end())
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
{
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -283,7 +283,7 @@ void Image::deleteExifTag(std::string ke
|
||||
if(datum == _exifData->end())
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
{
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -321,7 +321,7 @@ const IptcTag Image::getIptcTag(std::str
|
||||
if(_iptcData->findKey(iptcKey) == _iptcData->end())
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
{
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -341,7 +341,7 @@ void Image::deleteIptcTag(std::string ke
|
||||
if (dataIterator == _iptcData->end())
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
{
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -385,7 +385,7 @@ const XmpTag Image::getXmpTag(std::strin
|
||||
if(_xmpData->findKey(xmpKey) == _xmpData->end())
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
{
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -409,7 +409,7 @@ void Image::deleteXmpTag(std::string key
|
||||
else
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
{
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -461,7 +461,7 @@ void Image::copyMetadata(Image& other, b
|
||||
{
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
{
|
||||
- throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, "metadata not read");
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -570,7 +570,7 @@ boost::python::list Image::getExifThumbn
|
||||
Exiv2::DataBuf buffer = _getExifThumbnail()->copy();
|
||||
// Copy the data buffer in a list.
|
||||
boost::python::list data;
|
||||
- for(unsigned int i = 0; i < buffer.size_; ++i)
|
||||
+ for(unsigned int i = 0; i < buffer.size; ++i)
|
||||
{
|
||||
unsigned int datum = buffer.pData_[i];
|
||||
data.append(datum);
|
||||
@@ -688,7 +688,7 @@ void ExifTag::setRawValue(const std::str
|
||||
{
|
||||
std::string message("Invalid value: ");
|
||||
message += value;
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidDataset, message);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidDataset, message);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -708,7 +708,7 @@ void ExifTag::setParentImage(Image& imag
|
||||
return;
|
||||
}
|
||||
_data = data;
|
||||
- Exiv2::Value::AutoPtr value = _datum->getValue();
|
||||
+ Exiv2::Value::UniquePtr value = _datum->getValue();
|
||||
delete _datum;
|
||||
_datum = &(*_data)[_key.key()];
|
||||
_datum->setValue(value.get());
|
||||
@@ -810,7 +810,7 @@ IptcTag::IptcTag(const std::string& key,
|
||||
{
|
||||
std::string mssg("Tag not repeatable: ");
|
||||
mssg += key;
|
||||
- throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, mssg);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -838,7 +838,7 @@ void IptcTag::setRawValues(const boost::
|
||||
// one value.
|
||||
#ifdef HAVE_EXIV2_ERROR_CODE
|
||||
{
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidDataset, "Tag not repeatable");
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidDataset, "Tag not repeatable");
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -864,7 +864,7 @@ void IptcTag::setRawValues(const boost::
|
||||
mssg += value;
|
||||
// there's no invalid value error in libexiv2, so we use
|
||||
// kerInvalidDataset wich raise a Python ValueError
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidDataset, mssg);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidDataset, mssg);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -888,7 +888,7 @@ void IptcTag::setRawValues(const boost::
|
||||
{
|
||||
std::string mssg("Invalid value: ");
|
||||
mssg += value;
|
||||
- throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, mssg);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -901,7 +901,7 @@ void IptcTag::setRawValues(const boost::
|
||||
{
|
||||
std::string mssg("Tag not repeatable: ");
|
||||
mssg += _key.key();
|
||||
- throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, mssg);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -1089,7 +1089,7 @@ void XmpTag::setParentImage(Image& image
|
||||
// anything (see https://bugs.launchpad.net/pyexiv2/+bug/622739).
|
||||
return;
|
||||
}
|
||||
- Exiv2::Value::AutoPtr value = _datum->getValue();
|
||||
+ Exiv2::Value::UniquePtr value = _datum->getValue();
|
||||
delete _datum;
|
||||
_from_datum = true;
|
||||
_datum = &(*image.getXmpData())[_key.key()];
|
||||
@@ -1221,331 +1221,330 @@ void translateExiv2Error(Exiv2::Error co
|
||||
// defined by Exiv2 (file 'src/error.cpp') are changed
|
||||
switch (error.code())
|
||||
{
|
||||
- case 1:
|
||||
+ case Exiv2::ErrorCode::kerErrorMessage:
|
||||
// kerErrorMessage Unidentified error
|
||||
PyErr_SetString(PyExc_RuntimeError, message);
|
||||
break;
|
||||
- case 2:
|
||||
+ case Exiv2::ErrorCode::kerCallFailed:
|
||||
// kerCallFailed {path}: Call to `{function}' failed: {strerror}
|
||||
// May be raised when reading a file
|
||||
PyErr_SetString(PyExc_RuntimeError, message);
|
||||
break;
|
||||
- case 3:
|
||||
+ case Exiv2::ErrorCode::kerNotAnImage:
|
||||
// kerNotAnImage This does not look like a {image type} image
|
||||
// May be raised by readMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 4:
|
||||
+ case Exiv2::ErrorCode::kerInvalidDataset:
|
||||
// kerInvalidDataset Invalid dataset name `{dataset name}'
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 5:
|
||||
+ case Exiv2::ErrorCode::kerInvalidRecord:
|
||||
// kerInvalidRecord Invalid record name `{record name}'
|
||||
// May be raised when instantiating an IptcKey from a string
|
||||
PyErr_SetString(PyExc_KeyError, message);
|
||||
break;
|
||||
- case 6:
|
||||
+ case Exiv2::ErrorCode::kerInvalidKey:
|
||||
// kerInvalidKey Invalid key `{key}'
|
||||
// May be raised when instantiating an ExifKey, an IptcKey or an
|
||||
// XmpKey from a string
|
||||
PyErr_SetString(PyExc_KeyError, message);
|
||||
break;
|
||||
- case 7:
|
||||
+ case Exiv2::ErrorCode::kerInvalidTag:
|
||||
// kerInvalidTag
|
||||
// Invalid tag name or ifdId `{tag name}', ifdId {ifdId}
|
||||
// May be raised when instantiating an ExifKey from a string
|
||||
PyErr_SetString(PyExc_KeyError, message);
|
||||
break;
|
||||
- case 8:
|
||||
+ case Exiv2::ErrorCode::kerValueNotSet:
|
||||
// kerValueNotSet Value not set
|
||||
// May be raised when calling value() on a datum
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 9:
|
||||
+ case Exiv2::ErrorCode::kerDataSourceOpenFailed:
|
||||
// kerDataSourceOpenFailed
|
||||
// {path}: Failed to open the data source: {strerror}
|
||||
// May be raised by readMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 10:
|
||||
+ case Exiv2::ErrorCode::kerFileOpenFailed:
|
||||
// kerFileOpenFailed
|
||||
// {path}: Failed to open file ({mode}): {strerror}
|
||||
// May be raised by writeMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 11:
|
||||
+ case Exiv2::ErrorCode::kerFileOpenFailed:
|
||||
// kerFileOpenFailed
|
||||
// {path}: The file contains data of an unknown image type
|
||||
// May be raised when opening an image
|
||||
PyErr_SetString(PyExc_TypeError, message);
|
||||
break;
|
||||
- case 12:
|
||||
+ case Exiv2::ErrorCode::kerMemoryContainsUnknownImageType:
|
||||
// kerMemoryContainsUnknownImageType
|
||||
//The memory contains data of an unknown image type
|
||||
// May be raised when instantiating an image from a data buffer
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 13:
|
||||
+ case Exiv2::ErrorCode::kerUnsupportedImageType:
|
||||
// kerUnsupportedImageType Image type {image type} is not supported
|
||||
// May be raised when creating a new image
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 14:
|
||||
+ case Exiv2::ErrorCode::kerFailedToReadImageData:
|
||||
// kerFailedToReadImageData Failed to read image data
|
||||
// May be raised by readMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 15:
|
||||
+ case Exiv2::ErrorCode::kerNotAJpeg:
|
||||
// kerNotAJpeg This does not look like a JPEG image
|
||||
// May be raised by readMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 17:
|
||||
+ case Exiv2::ErrorCode::kerFileRenameFailed:
|
||||
// kerFileRenameFailed
|
||||
// {old path}: Failed to rename file to {new path}: {strerror}
|
||||
// May be raised by writeMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 18:
|
||||
+ case Exiv2::ErrorCode::kerTransferFailed:
|
||||
// kerTransferFailed {path}: Transfer failed: {strerror}
|
||||
// May be raised by writeMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 19:
|
||||
+ case Exiv2::ErrorCode::kerMemoryTransferFailed:
|
||||
// kerMemoryTransferFailed Memory transfer failed: {strerror}
|
||||
// May be raised by writeMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 20:
|
||||
+ case Exiv2::ErrorCode::kerInputDataReadFailed:
|
||||
// kerInputDataReadFailed Failed to read input data
|
||||
// May be raised by writeMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 21:
|
||||
+ case Exiv2::ErrorCode::kerImageWriteFailed:
|
||||
// kerImageWriteFailed Failed to write image
|
||||
// May be raised by writeMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 22:
|
||||
+ case Exiv2::ErrorCode::kerNoImageInInputData:
|
||||
// kerNoImageInInputData Input data does not contain a valid image
|
||||
// May be raised by writeMetadata()
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 23:
|
||||
+ case Exiv2::ErrorCode::kerInvalidIfdId:
|
||||
// kerInvalidIfdId Invalid ifdId {ifdId}
|
||||
// May be raised when instantiating an ExifKey from a tag and
|
||||
// IFD item string
|
||||
PyErr_SetString(PyExc_KeyError, message);
|
||||
break;
|
||||
- case 24:
|
||||
+ case Exiv2::ErrorCode::kerValueTooLarge:
|
||||
// kerValueTooLarge
|
||||
// Entry::setValue: Value too large {tag}, {size}, {requested}
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 25:
|
||||
+ case Exiv2::ErrorCode::kerDataAreaValueTooLarge:
|
||||
// kerDataAreaValueTooLarge
|
||||
// Entry::setDataArea: Value too large {tag}, {size}, {requested}
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 26:
|
||||
+ case Exiv2::ErrorCode::kerOffsetOutOfRange:
|
||||
// kerOffsetOutOfRange Offset out of range
|
||||
// May be raised by writeMetadata() (TIFF)
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 27:
|
||||
+ case Exiv2::ErrorCode::kerUnsupportedDataAreaOffsetType:
|
||||
// kerUnsupportedDataAreaOffsetType
|
||||
// Unsupported data area offset type
|
||||
// May be raised by writeMetadata() (TIFF)
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 28:
|
||||
+ case Exiv2::ErrorCode::kerInvalidCharset:
|
||||
// kerInvalidCharset Invalid charset: `{charset name}'
|
||||
// May be raised when instantiating a CommentValue from a string
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 29:
|
||||
+ case Exiv2::ErrorCode::kerUnsupportedDateFormat:
|
||||
// kerUnsupportedDateFormat Unsupported date format
|
||||
// May be raised when instantiating a DateValue from a string
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 30:
|
||||
+ case Exiv2::ErrorCode::kerUnsupportedTimeFormat:
|
||||
// kerUnsupportedTimeFormat Unsupported time format
|
||||
// May be raised when instantiating a TimeValue from a string
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 31:
|
||||
+ case Exiv2::ErrorCode::kerWritingImageFormatUnsupported:
|
||||
// kerWritingImageFormatUnsupported
|
||||
// Writing to {image format} images is not supported
|
||||
// May be raised by writeMetadata() for certain image types
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 32:
|
||||
+ case Exiv2::ErrorCode::kerInvalidSettingForImage:
|
||||
// kerInvalidSettingForImage
|
||||
// Setting {metadata type} in {image format} images is not supported
|
||||
// May be raised when setting certain types of metadata for certain
|
||||
// image types that don't support them
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 33:
|
||||
+ case Exiv2::ErrorCode::kerNotACrwImage:
|
||||
// kerNotACrwImage This does not look like a CRW image
|
||||
// May be raised by readMetadata() (CRW)
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 34:
|
||||
+ case Exiv2::ErrorCode::kerFunctionNotSupported:
|
||||
// kerFunctionNotSupported {function}: Not supported
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 35:
|
||||
+ case Exiv2::ErrorCode::kerNoNamespaceInfoForXmpPrefix:
|
||||
// kerNoNamespaceInfoForXmpPrefix
|
||||
// No namespace info available for XMP prefix `{prefix}'
|
||||
// May be raised when retrieving property info for an XmpKey
|
||||
PyErr_SetString(PyExc_KeyError, message);
|
||||
break;
|
||||
- case 36:
|
||||
+ case Exiv2::ErrorCode::kerNoPrefixForNamespace:
|
||||
// kerNoPrefixForNamespace
|
||||
// No prefix registered for namespace `{namespace}', needed for
|
||||
// property path `{property path}'
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_KeyError, message);
|
||||
break;
|
||||
- case 37:
|
||||
+ case Exiv2::ErrorCode::kerTooLargeJpegSegment:
|
||||
// kerTooLargeJpegSegment
|
||||
// Size of {type of metadata} JPEG segment is larger than
|
||||
// 65535 bytes
|
||||
// May be raised by writeMetadata() (JPEG)
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 38:
|
||||
+ case Exiv2::ErrorCode::kerUnhandledXmpdatum:
|
||||
// kerUnhandledXmpdatum
|
||||
// Unhandled Xmpdatum {key} of type {value type}
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_TypeError, message);
|
||||
break;
|
||||
- case 39:
|
||||
+ case Exiv2::ErrorCode::kerUnhandledXmpNode:
|
||||
// kerUnhandledXmpNode
|
||||
// Unhandled XMP node {key} with opt={XMP Toolkit option flags}
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_TypeError, message);
|
||||
break;
|
||||
- case 40:
|
||||
+ case Exiv2::ErrorCode::kerXMPToolkitError:
|
||||
// kerXMPToolkitError
|
||||
// XMP Toolkit error {error id}: {error message}
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_RuntimeError, message);
|
||||
break;
|
||||
- case 41:
|
||||
+ case Exiv2::ErrorCode::kerDecodeLangAltPropertyFailed:
|
||||
// kerDecodeLangAltPropertyFailed
|
||||
// Failed to decode Lang Alt property {property path}
|
||||
// with opt={XMP Toolkit option flags}
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 42:
|
||||
+ case Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed:
|
||||
// kerDecodeLangAltQualifierFailed
|
||||
// Failed to decode Lang Alt qualifier {qualifier path}
|
||||
// with opt={XMP Toolkit option flags}
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 43:
|
||||
+ case Exiv2::ErrorCode::kerEncodeLangAltPropertyFailed:
|
||||
// kerEncodeLangAltPropertyFailed
|
||||
// Failed to encode Lang Alt property {key}
|
||||
// May be raised by writeMetadata()
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 44:
|
||||
+ case Exiv2::ErrorCode::kerPropertyNameIdentificationFailed:
|
||||
// kerPropertyNameIdentificationFailed
|
||||
// Failed to determine property name from path {property path},
|
||||
// namespace {namespace}
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_KeyError, message);
|
||||
break;
|
||||
- case 45:
|
||||
+ case Exiv2::ErrorCode::kerSchemaNamespaceNotRegistered:
|
||||
// kerSchemaNamespaceNotRegistered
|
||||
// Schema namespace {namespace} is not registered with
|
||||
// the XMP Toolkit
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 46:
|
||||
+ case Exiv2::ErrorCode::kerNoNamespaceForPrefix:
|
||||
// kerNoNamespaceForPrefix
|
||||
// No namespace registered for prefix `{prefix}'
|
||||
// May be raised when instantiating an XmpKey from a string
|
||||
PyErr_SetString(PyExc_KeyError, message);
|
||||
break;
|
||||
- case 47:
|
||||
+ case Exiv2::ErrorCode::kerAliasesNotSupported:
|
||||
// kerAliasesNotSupported
|
||||
// Aliases are not supported. Please send this XMP packet
|
||||
// to ahuggel@gmx.net `{namespace}', `{property path}', `{value}'
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 48:
|
||||
+ case Exiv2::ErrorCode::kerInvalidXmpText:
|
||||
// kerInvalidXmpText
|
||||
// Invalid XmpText type `{type}'
|
||||
// May be raised when instantiating an XmpTextValue from a string
|
||||
PyErr_SetString(PyExc_TypeError, message);
|
||||
break;
|
||||
- case 49:
|
||||
+ case Exiv2::ErrorCode::kerTooManyTiffDirectoryEntries:
|
||||
// kerTooManyTiffDirectoryEntries
|
||||
// TIFF directory {TIFF directory name} has too many entries
|
||||
// May be raised by writeMetadata() (TIFF)
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
// Added in py3exiv2
|
||||
- case 50:
|
||||
+ case Exiv2::ErrorCode::kerMultipleTiffArrayElementTagsInDirectory:
|
||||
// kerMultipleTiffArrayElementTagsInDirectory
|
||||
// Multiple TIFF array element tags {number} in one directory")
|
||||
// May be raised by readMetadata() (TIFF)
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 51:
|
||||
+ case Exiv2::ErrorCode::kerWrongTiffArrayElementTagType:
|
||||
// kerWrongTiffArrayElementTagType
|
||||
// TIFF array element tag {number} has wrong type") }, // %1=tag number
|
||||
// May be raised by readMetadata() (TIFF)
|
||||
PyErr_SetString(PyExc_TypeError, message);
|
||||
break;
|
||||
// Added in libexiv2 0.27
|
||||
- case 52:
|
||||
+ case Exiv2::ErrorCode::kerInvalidKeyXmpValue:
|
||||
// kerInvalidKeyXmpValue {key} has invalid XMP value type {type}
|
||||
// May be raised by readMetadata() when reading the XMP data
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 53:
|
||||
+ case Exiv2::ErrorCode::kerInvalidIccProfile:
|
||||
// kerInvalidIccProfile Not a valid ICC Profile
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 54:
|
||||
+ case Exiv2::ErrorCode::kerInvalidXMP:
|
||||
// kerInvalidXMP Not valid XMP
|
||||
PyErr_SetString(PyExc_TypeError, message);
|
||||
break;
|
||||
- case 55:
|
||||
+ case Exiv2::ErrorCode::kerTiffDirectoryTooLarge:
|
||||
// kerTiffDirectoryTooLarge tiff directory length is too large
|
||||
PyErr_SetString(PyExc_ValueError, message);
|
||||
break;
|
||||
- case 56:
|
||||
+ case Exiv2::ErrorCode::kerInvalidTypeValue:
|
||||
// kerInvalidTypeValue
|
||||
// Invalid type value detected in Image::printIFDStructure
|
||||
PyErr_SetString(PyExc_TypeError, message);
|
||||
break;
|
||||
- case 57:
|
||||
+ case Exiv2::ErrorCode::kerInvalidMalloc:
|
||||
// kerInvalidMalloc
|
||||
// Invalid memory allocation request
|
||||
PyErr_SetString(PyExc_MemoryError, message);
|
||||
break;
|
||||
- case 58:
|
||||
+ case Exiv2::ErrorCode::kerCorruptedMetadata:
|
||||
// kerCorruptedMetadata Corrupted image metadata
|
||||
PyErr_SetString(PyExc_IOError, message);
|
||||
break;
|
||||
- case 59:
|
||||
+ case Exiv2::ErrorCode::kerArithmeticOverflow:
|
||||
// kerArithmeticOverflow Arithmetic operation overflow
|
||||
PyErr_SetString(PyExc_OverflowError, message);
|
||||
break;
|
||||
- case 60:
|
||||
+ case Exiv2::ErrorCode::kerMallocFailed:
|
||||
// kerMallocFailed Memory allocation failed
|
||||
PyErr_SetString(PyExc_MemoryError, message);
|
||||
break;
|
||||
-
|
||||
// Default handler
|
||||
default:
|
||||
PyErr_SetString(PyExc_RuntimeError, message);
|
||||
@@ -1896,7 +1895,7 @@ void registerXmpNs(const std::string& na
|
||||
{
|
||||
std::string mssg("Namespace already exists: ");
|
||||
mssg += prefix;
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, mssg);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -1925,7 +1924,7 @@ void unregisterXmpNs(const std::string&
|
||||
{
|
||||
std::string mssg("Can't unregister builtin namespace: ");
|
||||
mssg += name;
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, mssg);
|
||||
}
|
||||
#else
|
||||
{
|
||||
@@ -1938,7 +1937,7 @@ void unregisterXmpNs(const std::string&
|
||||
{
|
||||
std::string mssg("Namespace does not exists: ");
|
||||
mssg += name;
|
||||
- throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
|
||||
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, mssg);
|
||||
}
|
||||
#else
|
||||
{
|
||||
--- a/src/exiv2wrapper.hpp
|
||||
+++ b/src/exiv2wrapper.hpp
|
||||
@@ -271,7 +271,7 @@ private:
|
||||
std::string _filename;
|
||||
Exiv2::byte* _data;
|
||||
long _size;
|
||||
- Exiv2::Image::AutoPtr _image;
|
||||
+ Exiv2::Image::UniquePtr _image;
|
||||
Exiv2::ExifData* _exifData;
|
||||
Exiv2::IptcData* _iptcData;
|
||||
Exiv2::XmpData* _xmpData;
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6600da6b897199d4da66191b96045f3ccc5f57010da76b3ac5d292b83fcca844
|
||||
size 36255
|
||||
3
py3exiv2-0.12.3.tar.gz
Normal file
3
py3exiv2-0.12.3.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c97d0cc8db8d579f8709876879faff9809c4000279d4cdd3d0fb2fa7cdcbf0b6
|
||||
size 47062
|
||||
@@ -1,7 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 10 21:33:24 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
- Update to 0.12.3:
|
||||
- upstream doesn't release proper changelog
|
||||
- Remove the exiv2_0-28-0.patch patch again.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 4 23:06:13 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
- WIP INCOMPLETE
|
||||
- Add exiv2_0-28-0.patch making the package compatible with the
|
||||
latest exiv2 0.28 (lp#2027823).
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: python-exiv2
|
||||
Version: 0.11.0
|
||||
Version: 0.12.3
|
||||
Release: 0
|
||||
Summary: Python3 bindings for the exiv2 library
|
||||
License: GPL-3.0-only
|
||||
@@ -27,9 +27,6 @@ URL: https://launchpad.net/py3exiv2
|
||||
Source0: https://files.pythonhosted.org/packages/source/p/py3exiv2/py3exiv2-%{version}.tar.gz
|
||||
#
|
||||
Patch0: py3exiv2-link-boost.patch
|
||||
# PATCH-FIX-UPSTREAM exiv2_0-28-0.patch lp#2027823 mcepl@suse.com
|
||||
# Fix compilation errors with exiv2 0.28.0+
|
||||
Patch1: exiv2_0-28-0.patch
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: fdupes
|
||||
@@ -58,9 +55,11 @@ easy manipulation of image metadata.
|
||||
|
||||
%install
|
||||
%python_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
|
||||
%files %{python_files}
|
||||
%{python_sitearch}/*
|
||||
%{python_sitearch}/libexiv2python.*.so
|
||||
%{python_sitearch}/pyexiv2
|
||||
%{python_sitearch}/py3exiv2-%{version}*-info
|
||||
|
||||
%changelog
|
||||
|
||||
Reference in New Issue
Block a user