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.

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

Many of the libexiv2 objects point to data in other objects. For example, image.exifData() returns an object that points to data in image. The Python interface uses Python objects’ reference counting to prevent image being deleted while its data is being pointed at by another object. This avoids one possible cause of segfaults.

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.8.2.zip (2.2 MB view details)

Uploaded Source

Built Distributions

python_exiv2-0.8.2-cp310-cp310-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10Windows x86-64

python_exiv2-0.8.2-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.2-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.2-cp39-cp39-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.9Windows x86-64

python_exiv2-0.8.2-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.2-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.2-cp38-cp38-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.8Windows x86-64

python_exiv2-0.8.2-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.2-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.2-cp37-cp37m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.7mWindows x86-64

python_exiv2-0.8.2-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.2-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.2-cp36-cp36m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.6mWindows x86-64

python_exiv2-0.8.2-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.2-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.2-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.2.zip.

File metadata

  • Download URL: python-exiv2-0.8.2.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.2.zip
Algorithm Hash digest
SHA256 50b5aac27ba6edcecfe59ba350aebbb81d69832be772c735f132ed208063737e
MD5 a12acbda961bdbf4ad9a5c69a9635e55
BLAKE2b-256 07ff975f2be983555cde240a833cf29cee879945280635c7ca891fcf825bb3ca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.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/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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8343c253bec16468a4d81f4d1afcfa2b1296e130611b98e7e208176b3a2c13d2
MD5 f46784d297d6a04a52101e7032085032
BLAKE2b-256 a887141019db90380a9fb9456a21c10b7686a4861a132e55f5323788c5c342f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4eeb5d71043f8601a3b21ce0fa35f0f3ec5c2f4b64544a15329f0522488e52a3
MD5 661e00e0054419691fc006cdd0848ecf
BLAKE2b-256 6825eb630e6e6d4a354364566ab3abf8202564eef01ea315dec42ce940f34748

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.2-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.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7e0d9cafb7359eb17915abb81223c5e5fa7aae3c48c52383eeca1ab88b16ee30
MD5 2ca2817fd7cd73a30cebdd9af3137445
BLAKE2b-256 189ba47cd0f6b60ec5a9dff1303bc411d104393ef0c1bd5b117bceae8f9f25c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.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/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.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 162f688b4561302ec36dd7ae14dfa400faf2ca87585ef03ab06f636a810b577d
MD5 739a009857a2771c34c6a739a26ffd88
BLAKE2b-256 283ae5e09b8a77aaa21b319feba2f732b0f0e3c003ecd64475e1568278f0ff23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2df4b603a5cdbf2aa16a2c90c248da79e87bbbaca9265163d261e9c60f48443d
MD5 85aeefbec57c142fe64a4c0c08f42f24
BLAKE2b-256 467182ebcf2b82ac18dacd294667fb76ae994fcf231bca0d23ec479c845ce9b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.2-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.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 853d46cda9cc7e6971935e608993bd0788ae186598196f94a87119e82d43a810
MD5 f65a92083959fd99edc10611418597dd
BLAKE2b-256 648e78d1a0aef08864e91bd7eb7bb82d6c6cf326971004588a4a492cfe2c66ae

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.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/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.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d55cb8d1efac9ef12be29b2edaa3ca150a30445f392a66ebd720a60c98f9a588
MD5 e7bb7cb3e8b153a33e364dfe633ddf87
BLAKE2b-256 d9fb4d631bb369a88caba7b0985af243b005074aefc372b70919a37492d4c1f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 92c96ecdcc09137396a664ac81f125141e4cec2a15acf5b03c38c1051c8a90fd
MD5 c84d754d53c71c7af1425d7cf2c0e118
BLAKE2b-256 b0c7e8ae1e03c3bd7f6a379ec35b5e1fc25c71a1a9064efaaa43083710594788

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.2-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.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b99392a70bfcd6614e155a13c2887d07b2a25d2b6610fbd3f8f9a6bf5dfa2d05
MD5 3d4db88ec24a26ca6e6c1ea47f2fe61e
BLAKE2b-256 1baea38faece148bf5bb32456245759e7cdb9d878e2c97e7f2544d128a3aa4e6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.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/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.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 80c41d474b2e787ebe8ffda3e03712618603ce0e73a96df0fa629ef631e6cb0f
MD5 e440cc457626f2edf71960184fc858b5
BLAKE2b-256 150679d34db7d48b2e15f2afd8d2d7bf449453464750c9505fbab0bde7b06e28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d6124981d477e132680ffd28aeb53b574ecea7de9e119b9f3b1f7718938b4c75
MD5 21256ca24f0dc9dcbe9ee909f6e4c2ae
BLAKE2b-256 2aaf303bda369fb345d66a9d1505810b7e744835b781e51b2d2f9c4159d35b22

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.2-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.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9b3bd28354fd7c37b129713e29059743ef59a33a8af785d76b0d1aac2283b122
MD5 838a7d9140845af8bdc75f0568bd6116
BLAKE2b-256 1a765f984850e6ee4e284cf5136aefef674ae60fd49c54709e128213eb978209

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.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/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.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 1b397a98fd17f27912186f8a6f586c616afb2467d17008c44bbe5cc6f2213489
MD5 bf1c9707318dd171a2f121bdc08ea2e1
BLAKE2b-256 a9f4cf84efdcfd3141e8d481ad8638b23f3e04296cc61b22415887f62752aa6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_exiv2-0.8.2-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 75bc9723c70b8cea2ef727b00c1c8f3e67a256f21596b3c28fcef04e10ea7baf
MD5 f8eae0a5c100b6a97178325f08ac2b7d
BLAKE2b-256 b0538df4ab84a83b7b9e5a470b0927334c33ce64fa651df22662d905dfa81f0b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.2-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.2-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 361f13db52a3cffb9ee5aa09777f7dc9adde227f206e47a94b7499319a73c46e
MD5 66154709c7da9578e621353a8c6a7979
BLAKE2b-256 a2714bb8ed6bd1d1d550b0d690eae29350ec62171c73351564e0f9a0ac39c214

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_exiv2-0.8.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/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.2-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 1fd96076db4bd42a53f534f9ac63df67c66ca82434f940edde19d99535061dd1
MD5 0de792b6095f97234280815fdc672697
BLAKE2b-256 ebd24d7c16a95fef5bb19ecf8b6ce8add4a5995b524f1bc0ef7ceed43920951f

See more details on using hashes here.

Supported by

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