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.

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 python-exiv2

or on Linux or MacOS:

$ sudo pip3 install python-exiv2

You can install for a single user with the --user option:

$ pip3 install --user python-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

python-exiv2-0.9.0.zip (3.9 MB view details)

Uploaded Source

Built Distributions

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

python_exiv2-0.9.0-cp310-cp310-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.10Windows x86-64

python_exiv2-0.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64

python_exiv2-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

python_exiv2-0.9.0-cp39-cp39-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.9Windows x86-64

python_exiv2-0.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

python_exiv2-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

python_exiv2-0.9.0-cp38-cp38-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.8Windows x86-64

python_exiv2-0.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

python_exiv2-0.9.0-cp38-cp38-macosx_10_9_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

python_exiv2-0.9.0-cp37-cp37m-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.7mWindows x86-64

python_exiv2-0.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

python_exiv2-0.9.0-cp37-cp37m-macosx_10_9_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

python_exiv2-0.9.0-cp36-cp36m-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.6mWindows x86-64

python_exiv2-0.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

python_exiv2-0.9.0-cp36-cp36m-macosx_10_9_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

python_exiv2-0.9.0-cp35-cp35m-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.5mWindows x86-64

File details

Details for the file python-exiv2-0.9.0.zip.

File metadata

  • Download URL: python-exiv2-0.9.0.zip
  • Upload date:
  • Size: 3.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python-exiv2-0.9.0.zip
Algorithm Hash digest
SHA256 4d63db61631ad8fa5b5e7d73c4f96a0d56cea5b473149aae43bf4841f1c30c10
MD5 19f053ec10a4086b14c0db108ed27dbd
BLAKE2b-256 18dbbed032ed0b6de6711f2df7e081beb6a805566ae9f8eb93246464bee2711a

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 68212dcbbdfad0c87e575719b7170ff1109c67d1751c4c3a4a0699388b388796
MD5 50561d808875af54e80812977ac20159
BLAKE2b-256 6b97a51ad404e07176d89a57a8584084b268340e8c31e45df4094a4babe9fa5b

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for python_exiv2-0.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ef655a99085ac30f859f272b6b92eef0b500663ceeb7301d96a8c5c0615014be
MD5 6b82197031718134309ba8581e1a32d3
BLAKE2b-256 e244230b6aa2c450d17a2776d05bdd42180f9f4e6c2b42d4bfd7786a74f6924e

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ad0925c191a2e93fa7fa3574aa1f038d26def696504d01670d3bcaa19f438535
MD5 bc9750fd3e19adfd73356ff79c7cc77b
BLAKE2b-256 182207cccc3a575bc5a6c9449b6c647ca92e6efb4797e7a6a3259210aee7df83

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a05a991fd0060f6115c89062a4693e82eac304bbfd7a53c3e75128acb1d0931f
MD5 37040255b1a5e927eb9a160190a0d906
BLAKE2b-256 b90d96d1caa8c2213a2c96f1a12a22a0ba2346553bb7b52c4199cf35afa5b4d3

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for python_exiv2-0.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 fc3b68813a1bae03b06dd277d4a4e53fd3ebecb62bc5077896887e721ec46de7
MD5 94af87100881535bf9d118b911e34604
BLAKE2b-256 0d5ea99e5814ad0903ac99aa7841453dcaffb0221ffb1ae7906dc1ad36008e8f

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 621d943227486e494deb251e63c0256b042608df1af76fa8b0b1499cb9ddd3f3
MD5 7b8d85c15c8978dddae4930f39dde6a2
BLAKE2b-256 6c8fde8eeee7357fd6f8496d2f10486f1ddc067b7bc5cba34b6fb72681c40c11

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3cb3868e7698be7d3957f537231e5c3c769c03d77350eefd4f6f7107d57696db
MD5 f748dc94caab35d78e60e30d8af91c6f
BLAKE2b-256 07dfb2b6f7a93e061f712ac723997e9aa32880a95c08c60b411e31a1f9cfcfb4

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for python_exiv2-0.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f6052bdea7a01b8b61c5099eede539a2ffaf3a8798771204ab3bc7b5e2f9e679
MD5 8d9a67e034bae6fb404098fac1ff2137
BLAKE2b-256 e6a594d60725c0bf26c75c42d68325c7172a942770b9db6fdca461784c5a5c67

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dec5843210ea7229abe95b448e749d4d712acc280353090a208acbc4f7cb5c94
MD5 ba37ab15a9ff59e064fc3570fd65062a
BLAKE2b-256 5e4cf0acd0a69e99271a1ff7a2f649262d34f04f8ba79cbac65f312ac4badccb

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 69fbad9694c247340b4f90543dbf52d5c7c28e3888908856fc59ed54c01c804e
MD5 75c8b04b48e7b54d3e32c5b95b5c1183
BLAKE2b-256 34086a199c7e8008b23f4251a1d4928f118c94580cf0f0ab4fcb2fe870a4cc32

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for python_exiv2-0.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3df39b75642061909b0cae67ad229da2d4b73a1ec8a42a90445c49e85d0b767c
MD5 d4e9beced2b7dd96bc43fe68ea56e388
BLAKE2b-256 926c5cf95e9d5241dc1dae57b99d09b3d80d3f3a3d4c4c04ea123b4f97292810

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ad39bce7928fa987d3e0d845f285cce59db8dad698137b4255c3e4d7968fb493
MD5 f551b058c3f3785d7d3b162777417d26
BLAKE2b-256 cf02081f38e9a82a0ccc23e08c047cb0fcb38e436535c2629e55de3277472aa0

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 bbee445f33511f9163f991cb33640ef021d8af701ce23683d21a5e56992d3f29
MD5 2a0d02d36e9b13b689137303edfa2625
BLAKE2b-256 66a9e2b1063ce98926d1f61cc1b37157beb134321f51306e3d613553841d97ea

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for python_exiv2-0.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3b2a5fb57922df69d6240db5352b7ce5d06ccb3a95e67d37a3637191c349d789
MD5 363241e49afa82bd9ef53cd3119b1c10
BLAKE2b-256 c46dd6130a65b6ccb58ee342d88c11c17e58b2bc814a643bc66089389d6ca853

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6ffb21817866bbbd25589b64b8787f8bff0f37059d6cc23a5a58957a7020c296
MD5 276b96e737961a98293a1d25160c575c
BLAKE2b-256 eab1a3550785194f5e1095ae34221006461311f692a256ef015c5e1156488c28

See more details on using hashes here.

File details

Details for the file python_exiv2-0.9.0-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: python_exiv2-0.9.0-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for python_exiv2-0.9.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 fce4c4496cffe64150d41b221ea388c8b06a5a46e5a2b1fc01dd294462f023a2
MD5 e9c7e9f8212a01a7fd8369af5d51329c
BLAKE2b-256 5392f05c74e0fa1f4f73b361512a3329a1c24d008df460caab9a1ff407d83fae

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