gnu: Add python-piexif.

* gnu/packages/python-xyz.scm (python-piexif): New variable.
* gnu/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch: New file.
* gnu/packages/python-xyz.scm (dist_patch_DATA): Add it.
This commit is contained in:
Hartmut Goebel 2021-12-19 12:56:59 +01:00
parent 29fc4a7dae
commit e0ba031ab2
No known key found for this signature in database
GPG key ID: 634A8DFFD3F631DF
3 changed files with 67 additions and 0 deletions

View file

@ -1688,6 +1688,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-pdoc3-tests.patch \
%D%/packages/patches/python-peachpy-determinism.patch \
%D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
%D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
%D%/packages/patches/python-pyflakes-test-location.patch \
%D%/packages/patches/python-flint-includes.patch \

View file

@ -0,0 +1,44 @@
From 5209b53e9689ce28dcd045f384633378d619718f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Wi=C5=9Bniewski?= <vuko@vuko.pl>
Date: Thu, 5 Nov 2020 16:18:52 +0100
Subject: [PATCH] convert IFDRational to tuples in tests
This fixes tests with Pillow version >= 7.2.0
---
tests/s_test.py | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/tests/s_test.py b/tests/s_test.py
index 5d105de..a7cad54 100644
--- a/tests/s_test.py
+++ b/tests/s_test.py
***************
*** 9,14 ****
--- 9,15 ----
import time
import unittest
+ import PIL
from PIL import Image
import piexif
from piexif import _common, ImageIFD, ExifIFD, GPSIFD, TAGS, InvalidImageDataError
***************
*** 580,585 ****
--- 581,597 ----
# test utility methods----------------------------------------------
def _compare_value(self, v1, v2):
+ if isinstance(v2, PIL.TiffImagePlugin.IFDRational):
+ v2 = (v2.numerator, v2.denominator)
+ if isinstance(v2, tuple):
+ converted_v2 = []
+ for el in v2:
+ if isinstance(el, PIL.TiffImagePlugin.IFDRational):
+ converted_v2.append((el.numerator, el.denominator))
+ else:
+ converted_v2.append(el)
+ v2 = tuple(converted_v2)
+
if type(v1) != type(v2):
if isinstance(v1, tuple):
self.assertEqual(pack_byte(*v1), v2)

View file

@ -28319,3 +28319,25 @@ (define-public python-pdoc3
"This package auto-generates API documentation from Python projects
already existing modules and objects docstrings.")
(license license:agpl3+)))
(define-public python-piexif
(package
(name "python-piexif")
(version "1.1.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "piexif" version ".zip"))
(sha256
(base32 "06sz58q4mrw472p8fbnq7wsj8zpi5js5r8phm2hiwfmz0v33bjw3"))
(patches
(search-patches "python-piexif-fix-tests-with-pillow-7.2.patch"))))
(build-system python-build-system)
(native-inputs
(list unzip python-pillow))
(home-page "https://github.com/hMatoba/Piexif")
(synopsis "Simplify exif manipulations with Python")
(description "Piexif simplifies interacting with EXIF data in
Python. It includes the tools necessary for extracting, creating,
manipulating, converting and writing EXIF data to JPEG, WebP and TIFF files.")
(license license:expat)))