Skip to main content

Python interface to libexiv2

Project description

python-exiv2 is a low level interface (or binding) to the exiv2 C++ library. It is built using SWIG to automatically generate the interface code. The intention is to give direct access to all of the top-level classes in libexiv2, but with additional “Pythonic” helpers where necessary. Not everything in libexiv2 is available in the Python interface. If you need something that’s not there, please let me know.

This project has taken over the PyPI exiv2 package created by Michael Vanslembrouck. If you need to use Michael’s project, it is available at https://bitbucket.org/zmic/exiv2-python/src/master/ and can be installed with pip:

pip install exiv2==0.3.1

Introduction

There are several other ways to access libexiv2 from within Python. The first one I used was pyexiv2 (old). After its development ceased I moved on to using gexiv2 and PyGObject. This works well, providing a Metadata object with high level functions such as set_tag_string and set_tag_multiple to get and set metadata values.

A more recent development is pyexiv2 (new). This new project is potentially very useful, providing a simple interface with functions to read and modify metadata using Python dict parameters.

For more complicated metadata operations I think a lower level interface is required, which is where this project comes in. Here is an example of its use:

Python 3.6.12 (default, Dec 02 2020, 09:44:23) [GCC] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import exiv2
>>> image = exiv2.ImageFactory.open('IMG_0211.JPG')
>>> image.readMetadata()
>>> data = image.exifData()
>>> data['Exif.Image.Artist']._print()
'Jim Easterbrook'
>>>

Documentation

The libexiv2 library is well documented for C++ users, in Doxygen format. Recent versions of SWIG can convert this documentation to pydoc format in the Python interface:

$ pydoc3 exiv2.Image.readMetadata
Help on method_descriptor in exiv2.Image:

exiv2.Image.readMetadata = readMetadata(...)
    Read all metadata supported by a specific image format from the
        image. Before this method is called, the image metadata will be
        cleared.

    This method returns success even if no metadata is found in the
    image. Callers must therefore check the size of individual metadata
    types before accessing the data.

    :raises: Error if opening or reading of the file fails or the image
            data is not valid (does not look like data of the specific image
            type).

Unfortunately some documentation gets lost in the manipulations needed to make a useful interface. The C++ documentation is still needed in these cases.

Support for bmff files (CR3, HEIF, HEIC, and AVIF)

Python-exiv2 from version 0.8.3 onwards is built with support for bmff files. In order to use bmff files in your Python program you need to call the enableBMFF function. Please read the Exiv2 statement on bmff patents before doing so.

Assignment

libexiv2 stores metadata values in a generalised container whose type can be set by the type of a value assigned to it, for example:

// C or C++
exifData["Exif.Image.SamplesPerPixel"] = uint16_t(162);

This forces the Exif.Image.SamplesPerPixel value to be an unsigned short. Python doesn’t have such specific integer types, so if you need to set the type you can create an exiv2 value of the appropriate type and assign that:

# Python
exifData["Exif.Image.SamplesPerPixel"] = exiv2.UShortValue(162)

This allows you to set the value to any type, just like in C++, but the Python interface warns you if you set a type that isn’t the default for that tag. Alternatively you can use any Python object and let libexiv2 convert the string representation of that object to the appropriate type:

# Python
exifData["Exif.Image.SamplesPerPixel"] = 162

Buffer interface

Several Exiv2 classes have C++ methods with parameters including a pointer and a length, e.g. (Exiv2::byte* buf, long size). In the Python interface these methods take any Python object which exposes a simple buffer interface, e.g. bytes or str.

The Python interfaces to Exiv2::BasicIo and Exiv2::DataBuf expose their data as a Python buffer. This allows efficient access to the data without copying it. For example:

data = bytes(image.io())

creates a Python bytes object containing the image data but without any copying.

Iterators

The Exiv2::ExifData, Exiv2::IptcData, and Exiv2::XmpData classes use C++ iterators to expose private data, for example the ExifData class has a private member of std::list<Exifdatum> type. The classes have public begin(), end(), and findKey() methods that return std::list iterators. In C++ you can dereference one of these iterators to access the Exifdatum object, but Python doesn’t have a dereference operator.

This Python interface converts the std::list iterator to a Python object that has access to all the Exifdatum object’s methods without dereferencing. For example:

Python 3.6.12 (default, Dec 02 2020, 09:44:23) [GCC] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import exiv2
>>> image = exiv2.ImageFactory.open('IMG_0211.JPG')
>>> image.readMetadata()
>>> data = image.exifData()
>>> b = data.begin()
>>> b.key()
'Exif.Image.ProcessingSoftware'
>>>

Before using an iterator you must ensure that it is not equal to the end() value.

You can iterate over the data in a very C++ like style:

>>> data = image.exifData()
>>> b = data.begin()
>>> e = data.end()
>>> while b != e:
...     b.key()
...     next(b)
...
'Exif.Image.ProcessingSoftware'
<Swig Object of type 'Exiv2::Exifdatum *' at 0x7fd6053f9030>
'Exif.Image.ImageDescription'
<Swig Object of type 'Exiv2::Exifdatum *' at 0x7fd6053f9030>
[skip 227 line pairs]
'Exif.Thumbnail.JPEGInterchangeFormat'
<Swig Object of type 'Exiv2::Exifdatum *' at 0x7fd6053f9030>
'Exif.Thumbnail.JPEGInterchangeFormatLength'
<Swig Object of type 'Exiv2::Exifdatum *' at 0x7fd6053f9030>
>>>

The <Swig Object of type 'Exiv2::Exifdatum *' at 0x7fd6053f9030> lines are the Python interpreter showing the return value of next(b). You can also iterate in a more Pythonic style:

>>> data = image.exifData()
>>> for datum in data:
...     datum.key()
...
'Exif.Image.ProcessingSoftware'
'Exif.Image.ImageDescription'
[skip 227 lines]
'Exif.Thumbnail.JPEGInterchangeFormat'
'Exif.Thumbnail.JPEGInterchangeFormatLength'
>>>

The data container classes are like a cross between a Python list of Metadatum objects and a Python dict of (key, Value) pairs. (One way in which they are not like a dict is that you can have more than one member with the same key.) This allows them to be used in a very Pythonic style:

data = image.exifData()
print(data['Exif.Image.ImageDescription'].toString())
if 'Exif.Image.ProcessingSoftware' in data:
    del data['Exif.Image.ProcessingSoftware']
data = image.iptcData()
while 'Iptc.Application2.Keywords' in data:
    del data['Iptc.Application2.Keywords']

Warning: segmentation faults

If an iterator is invalidated, e.g. by deleting the datum it points to, then your Python program may crash with a segmentation fault if you try to use the invalid iterator. Just as in C++, there is no way to detect that an iterator has become invalid.

There may be other cases where the Python interface doesn’t prevent segfaults. Please let me know if you find any.

Error handling

libexiv2 has a multilevel warning system a bit like Python’s standard logger. The Python interface redirects all Exiv2 messages to Python logging with an appropriate log level. The exiv2.LogMsg.setLevel function can be used to control what severity of messages are logged.

Installation

Python “wheels” are available for Windows (Python 3.5 to 3.10) and Linux & MacOS (Python 3.6 to 3.10). These include the libexiv2 library and should not need any other software to be installed. They can be installed with Python’s pip package. For example, on Windows:

C:\Users\Jim>pip install exiv2

or on Linux or MacOS:

$ pip3 install --user exiv2

If the available wheels are not compatible with your operating system then pip will download the python-exiv2 source and attempt to compile it. For more information, and details of how to compile python-exiv2 and libexiv2, see INSTALL.rst.

Problems?

Please email jim@jim-easterbrook.me.uk if you find any problems (or solutions!).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exiv2-0.11.2.zip (2.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

exiv2-0.11.2-cp310-cp310-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10Windows x86-64

exiv2-0.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

exiv2-0.11.2-cp310-cp310-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

exiv2-0.11.2-cp39-cp39-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.9Windows x86-64

exiv2-0.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

exiv2-0.11.2-cp39-cp39-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

exiv2-0.11.2-cp38-cp38-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.8Windows x86-64

exiv2-0.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

exiv2-0.11.2-cp38-cp38-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

exiv2-0.11.2-cp37-cp37m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.7mWindows x86-64

exiv2-0.11.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

exiv2-0.11.2-cp37-cp37m-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

exiv2-0.11.2-cp36-cp36m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.6mWindows x86-64

exiv2-0.11.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

exiv2-0.11.2-cp36-cp36m-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

exiv2-0.11.2-cp35-cp35m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.5mWindows x86-64

File details

Details for the file exiv2-0.11.2.zip.

File metadata

  • Download URL: exiv2-0.11.2.zip
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2.zip
Algorithm Hash digest
SHA256 b1217dc65285538823c37c56af6dbf6cb97500cdbe5f8955ee8cc09ddf27abb7
MD5 4c11637c7811638f2f70e7aa59a2584b
BLAKE2b-256 8eca5dd04831fe521d1ef07e07c4b1c4ee04a6d1dc672b3369197b916ff88f40

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 21509835d022f193f506f726f8e1105b1eee0f3814a318fd373959b20507d520
MD5 23fbbb8b1d465e67820062b6bafe7b36
BLAKE2b-256 1ac8fa80e7739f03690e7d10b2d2789b68c5ce485d440bb6d8a230e3a725b04b

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 504e3dd1e9008a1120e3c85c56d81fb50a0a4ddde939e743abe083a127f3938c
MD5 b21f7894b93205fa09dc1d2397a4c6e4
BLAKE2b-256 144a0486059dfba8ba1ef35a20dffdc10a610806d048fb04602b4aae149a290a

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4a1629c47e67db00035e0f65cd18f29ad7a81a8d8b797ef29f7580862ec0a891
MD5 5f27dcd58fa40a5b8fef8dbbb317533a
BLAKE2b-256 66f3a230d1f1e19692b16e9278ca8b027450cf274c06fa4a1b538a604e3a8f00

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9b54a02638d56093d1514776231efd9eb2c3eccaf95125b3e291580490428523
MD5 2da2a1783b0de79756ec0c66869dfdb2
BLAKE2b-256 987b87149cb35fd670c43878005f5a4e3179e7d4070b904344dd18fd32d4943e

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00f8c5f185674fe1bfd1856712fd1dfc60853ce5058aeb353ebedee2d1aed7c4
MD5 918260c94e8d23894ec02cf047f3a0ae
BLAKE2b-256 62e921aea0bdf08572063865e58cda1bbf614edd3fabf4f51aca7c33ce32adfc

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 51ff3409bd5825c552f3db693fef1b33f358eac63188e3decf0eb11eea98c805
MD5 8e432f0c53c8e9d1c68fa40527428b9c
BLAKE2b-256 802e97d669e7178948ddf28e203644a8fd08decf93cd0edecec92301d17b3c96

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 83dc227826ebec6f0d67d6b76276e12be2ba59d083ffc7fb8e3bc6adf9a36bcd
MD5 dc6f74673224f84808cb39803f5ead03
BLAKE2b-256 8465ef70eb56e57246c2402888722e2cadea5aa74de675109a2c1b73443fd531

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0eab74b4f8ea47b98eaf9213cb6342e2dbf44a0da308aa837797966967a66d9e
MD5 7a8768f679905353195950c4ba4645e4
BLAKE2b-256 7141858cb4577e7e2bd8c57c16e08363b30f5432d80b23909aa4df2a67a0046b

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3402274f78170c9bbddb9854eee20c97170529a058164844a13640aaf3e34978
MD5 b2132ec106f8e1b8e1060f1151a42fb1
BLAKE2b-256 86371d6190ce77b9b6aea0ca87ce8df5b6d69be1852e0f588010bde6ae5f4335

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 c83d3d52cf0a41b15a595df98da6165432d0115848e16f43fd8f3fcd93c6fde4
MD5 61b3019455c1bea7e44defb6b7f33e75
BLAKE2b-256 8a53c11bb5d13a0390de12292183214ad43376774be988167610f6d71df873d8

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b22438cf253711d6e43b3c157d0e2791b7a7f3696f482f847ab91509765aba7b
MD5 f8e21a1a55d0a25c50d16267b526b122
BLAKE2b-256 aa2abf4a968be3bddc2fa8ede4cae7bbaec2396ef4d7e913656ce90d94188ebe

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3d7b811fdcf47b475b3b7840b1b2e46830b9dc7f94b857111c3cd556018a5691
MD5 07c440820e309cf795bb326f54b36f6d
BLAKE2b-256 e7b84fb03c0b73a533837b15b6693b0c4b688952b2c8f7ca461a965121d9ab20

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 6dab0316659d8be42cad832cf5cada5eeb415268178926d804b80431a2defdd2
MD5 9ea9e12e329415b2b94ed0d6537bcb85
BLAKE2b-256 c5ca1655d3f5c3a6a917873eb3bd8f3b8c320b0463b05691f0c8004af74b6e0b

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d86b14ba9f9acf03027c39e7162e93dd06ede4c084d5a0142ce3acc6b046435
MD5 c5ae2e90b3522efe75f3bacee05af72f
BLAKE2b-256 f03a43501e8d89bef90bcc2cffbc34cd453354986cc3a5a1675f6b3e0b52be84

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c59c4295fbe2cc0196b7732f52fa231983cca0ff0f9ffff147cbb0938cc49962
MD5 14a431168acc6c3ac4a8eca65e25bd2f
BLAKE2b-256 584e482e020091117ebbd62dd8837ca5e0daa207ee1240ce5d9508b06b817a71

See more details on using hashes here.

File details

Details for the file exiv2-0.11.2-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: exiv2-0.11.2-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for exiv2-0.11.2-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 f1ca7d6db49bf62f91f8d65e89322a9b9fcfcba790c4ea3050f2bfd1bc5b55af
MD5 28e717840526c510c274da679c9017fb
BLAKE2b-256 899bdd8f51b7ad9dd8216d076e7c34800cdcaee40aa895683d880722be4df6e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page