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.exifData

Help on method_descriptor in exiv2.Image:

exiv2.Image.exifData = exifData(...)
    Returns an ExifData instance containing currently buffered
        Exif data.

    The contained Exif data may have been read from the image by
    a previous call to readMetadata() or added directly. The Exif
    data in the returned instance will be written to the image when
    writeMetadata() is called.

    :rtype: :py:class:`ExifData`
    :return: modifiable ExifData instance containing Exif values

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

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. Failure to do so may produce a segmentation fault, just like a C++ program would.

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

It is easy to crash python-exiv2 if you delete objects which contain data that another object is pointing to. For example, deleting an Image after extracting its metadata can cause a segfault when the metadata is accessed. Ideally the Python interface to libexiv2 would use Python objects’ reference counts to ensure this doesn’t happen, preventing the deletion of the Image object until all references to it have been deleted. Unfortunately I haven’t found a sensible way to do this in the Python interface, so some care is needed when using it.

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.8.0.zip (2.2 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.8.0-cp310-cp310-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10Windows x86-64

python_exiv2-0.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64

python_exiv2-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

python_exiv2-0.8.0-cp39-cp39-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.9Windows x86-64

python_exiv2-0.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

python_exiv2-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

python_exiv2-0.8.0-cp38-cp38-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.8Windows x86-64

python_exiv2-0.8.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

python_exiv2-0.8.0-cp38-cp38-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

python_exiv2-0.8.0-cp37-cp37m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.7mWindows x86-64

python_exiv2-0.8.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

python_exiv2-0.8.0-cp37-cp37m-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

python_exiv2-0.8.0-cp36-cp36m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.6mWindows x86-64

python_exiv2-0.8.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

python_exiv2-0.8.0-cp36-cp36m-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

python_exiv2-0.8.0-cp35-cp35m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.5mWindows x86-64

File details

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

File metadata

  • Download URL: python-exiv2-0.8.0.zip
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python-exiv2-0.8.0.zip
Algorithm Hash digest
SHA256 691679eb54b26790d115f7412fcc3d98c0f61d05f2ec568298c37faa9bf27718
MD5 58ac51a1c64e4c04fbde1f271db0fe13
BLAKE2b-256 89a747c819a968c089cc898ae6ca726134453d5737de3b8d0d014a2a8c523791

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-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/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 db33c57af52dc3ea9217bbd348516fcd96bba6ab682a9d8b9a09e5e3a9f0c00b
MD5 884aed421c0b5c8a88d785b6bcd2367f
BLAKE2b-256 96af46b54ccfdb010d13a144f0d2087475a961e2754e3b32670f07e40e26fa59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2eacb8f8bc320e6de03b86b0dae5bcf186864247ec87cc520e8372af727050ae
MD5 669c4a72f46106c3db986a4afdc4e46b
BLAKE2b-256 1a04de39ff5ffb96827ececfc187423e45cea2d003d2c7d5a76eca514b87628f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 759947a30fa1009ce480d2501effc8746acf35e6119814c69970fb12dc806a13
MD5 d7b9d0c126a2ca15b7f9ef072a36b70b
BLAKE2b-256 81d8d4dfa3845068d51366f81d26db3e36efa629cd74c0cb02ec2b1ae71a8f0b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-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/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9c978b3c1493c312c973a3a3f008bc20a5a16503183813ab5267390987f2703c
MD5 6584504a6ec7db1ef9a33b29042e24e1
BLAKE2b-256 35dfa1c738da2d594260f21919055637e5166b1a55f45ef38e817b214e030564

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7176b8cc68e2464e794516d3af16d1fa0f8e93d4d16d411e2adb73ed78205d5b
MD5 7e6dbcc764b6f6131533aeb223b4c1ab
BLAKE2b-256 ad2e8871facd4a2a3505701b1a22ae3f898e48222e45413ee90ea9758e92ed47

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 53e9df01d59a2772138f82253bc0e64ab44ba0d371c461a5b06c6c67d6427800
MD5 77ad2db07ce2c98d395e90e824622389
BLAKE2b-256 a786284cfbbc55830fe164915253cac4d56921e95c34885d0c066bd788131b8b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-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/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3623ab9572d88043a5a3eab680d09bd06cce84836d4099ed951202cbd47bc88f
MD5 42e2c04fc57525ef97d9c6719e802de1
BLAKE2b-256 565d27bbc38022035ddec5eb447e4a7a7dd937c80aae8c7bd7de563687bb29ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 24d6d4177cf717c7393bb06dae6e696ef52618cf7c2510904c2a02f3037028c4
MD5 cee5787bdcd26f867cf84738bc7fc70b
BLAKE2b-256 25ed4e3860175523990f8e3c10280c07ce5dfcbecfe4fa9f9f63dd90068d4de6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 be53db04c5a6841b76942d9e73f466deaf46b3b111e4eb7e2e400babb73b56a3
MD5 dc41f26526392bd58a0cb9b27b2b12af
BLAKE2b-256 a2633eebb60616445a57db57c1cebd3c04c858dde5be827935f33f501cd68fa9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-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/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1b0db78bc3f7d742cffc0ae26fb0a0ce52b2f08d61812f657eb5abe22da06d0b
MD5 85af8629326d6d20474ed7d6cc2ba4cc
BLAKE2b-256 2f61deb2d092c84b2374e67899b2a7d63d5393d4c547249921ff90ebc13a63be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f796908154d2ca6a2f47434c393c354562e53fd1555e89a0db9f2a6665e72d24
MD5 0ac607104fde25a50c0fe435cc70aa52
BLAKE2b-256 8570a223e2673d0c6538660ca20eaa29ba089914086347b70060ed0a84a39568

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1d678516f51120e5f474540f5d43b0bc2b8c2e75fa6d8451edb5e7c08e1f7770
MD5 fca34d94563e53d677a1fec77da5a4e6
BLAKE2b-256 2c6c47306bc6bccbca367d6d93264d01d4b94ed84782ebb75de03bb08ea8422c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-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/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 f7734565de4dff8eae79ce3710993bb93b405b556ab5378b45e8950e752913dc
MD5 d81235b36421862d0dc6df63e9c7c184
BLAKE2b-256 82c571cd8c4b80fd7547e1ab213a40499e7411f3b2a6cf98cb21528fc449a83e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 47a289b4628e2c54b0d697a4eaaaf87652069c8d613c3ab37f2301291fba5aed
MD5 af377e719f3f814421c2cb4b699829e9
BLAKE2b-256 adb78c3bd32d10f646ca9d98becb4a63c7440e63ba4fb8c74fb926927cae1211

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c8c7d46bd13da8532762ef1cccda7c06c5a694dd949868d08bee7182cbca4767
MD5 1ccfcf1db364691fc4a9e2070936f655
BLAKE2b-256 addd8c41b0ba89fe0a77496ba87b8710ced1197ae887d069d4fc22fdef35d08f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.0-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/1.15.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

File hashes

Hashes for python_exiv2-0.8.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 78c318aa0533b78f8f5a6258c1aa8bd007d78c3b4f4a36ff593efc03168e31fe
MD5 2eef7f79a8216ab439ec85af0b2c4538
BLAKE2b-256 09e92b1bdf38d9beeb1c5c1c16379394058cd3f3045af6613839aeb254b58fc8

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