forked from pool/python-matplotlib
Accepting request 969899 from home:bnavigator:branches:devel:languages:python:numeric
- Add matplotlib-pr22780-Pillow-deprecations.patch for deprecation errors with Pillow -- gh#matplotlib/matplotlib#22780 - Skip any test with svg png or pdf in its id for non x86_64, as image comparison tests compare to x86_64 references. OBS-URL: https://build.opensuse.org/request/show/969899 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-matplotlib?expand=0&rev=58
This commit is contained in:
parent
bd18b6c841
commit
5ccb35735d
128
matplotlib-pr22780-Pillow-deprecations.patch
Normal file
128
matplotlib-pr22780-Pillow-deprecations.patch
Normal file
@ -0,0 +1,128 @@
|
||||
From 0205618d243c2c9ac43fc66558daae9364c394d0 Mon Sep 17 00:00:00 2001
|
||||
From: Oscar Gustafsson <oscar.gustafsson@gmail.com>
|
||||
Date: Mon, 4 Apr 2022 17:50:15 +0200
|
||||
Subject: [PATCH 1/2] Backport PR #22766: FIX: account for constant
|
||||
deprecations in Pillow 9.1
|
||||
|
||||
---
|
||||
azure-pipelines.yml | 3 +++
|
||||
lib/matplotlib/animation.py | 18 ++++++++++--------
|
||||
lib/matplotlib/backends/backend_pdf.py | 9 +++++++--
|
||||
3 files changed, 20 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
|
||||
index 2c794033a494..c9a3ec83b70d 100644
|
||||
--- a/azure-pipelines.yml
|
||||
+++ b/azure-pipelines.yml
|
||||
@@ -134,6 +134,9 @@ stages:
|
||||
- script: env
|
||||
displayName: 'print env'
|
||||
|
||||
+ - script: pip list
|
||||
+ displayName: 'print pip'
|
||||
+
|
||||
- bash: |
|
||||
PYTHONFAULTHANDLER=1 python -m pytest --junitxml=junit/test-results.xml -raR --maxfail=50 --timeout=300 --durations=25 --cov-report= --cov=lib -n 2 ||
|
||||
[[ "$PYTHON_VERSION" = 'Pre' ]]
|
||||
diff --git a/lib/matplotlib/animation.py b/lib/matplotlib/animation.py
|
||||
index 879aa945b00d..4eae790d8200 100644
|
||||
--- a/lib/matplotlib/animation.py
|
||||
+++ b/lib/matplotlib/animation.py
|
||||
@@ -17,6 +17,7 @@
|
||||
# * Can blit be enabled for movies?
|
||||
# * Need to consider event sources to allow clicking through multiple figures
|
||||
|
||||
+
|
||||
import abc
|
||||
import base64
|
||||
import contextlib
|
||||
@@ -481,14 +482,15 @@ def grab_frame(self, **savefig_kwargs):
|
||||
def finish(self):
|
||||
# Call run here now that all frame grabbing is done. All temp files
|
||||
# are available to be assembled.
|
||||
- self._run()
|
||||
- super().finish() # Will call clean-up
|
||||
-
|
||||
- def _cleanup(self): # Inline to finish() once cleanup() is removed.
|
||||
- super()._cleanup()
|
||||
- if self._tmpdir:
|
||||
- _log.debug('MovieWriter: clearing temporary path=%s', self._tmpdir)
|
||||
- self._tmpdir.cleanup()
|
||||
+ try:
|
||||
+ self._run()
|
||||
+ super().finish()
|
||||
+ finally:
|
||||
+ if self._tmpdir:
|
||||
+ _log.debug(
|
||||
+ 'MovieWriter: clearing temporary path=%s', self._tmpdir
|
||||
+ )
|
||||
+ self._tmpdir.cleanup()
|
||||
|
||||
|
||||
@writers.register('pillow')
|
||||
diff --git a/lib/matplotlib/backends/backend_pdf.py b/lib/matplotlib/backends/backend_pdf.py
|
||||
index 9ca791db0c5a..d035d1680da1 100644
|
||||
--- a/lib/matplotlib/backends/backend_pdf.py
|
||||
+++ b/lib/matplotlib/backends/backend_pdf.py
|
||||
@@ -1718,8 +1718,13 @@ def _writeImg(self, data, id, smask=None):
|
||||
# Convert to indexed color if there are 256 colors or fewer
|
||||
# This can significantly reduce the file size
|
||||
num_colors = len(img_colors)
|
||||
- img = img.convert(mode='P', dither=Image.NONE,
|
||||
- palette=Image.ADAPTIVE, colors=num_colors)
|
||||
+ # These constants were converted to IntEnums and deprecated in
|
||||
+ # Pillow 9.2
|
||||
+ dither = getattr(Image, 'Dither', Image).NONE
|
||||
+ pmode = getattr(Image, 'Palette', Image).ADAPTIVE
|
||||
+ img = img.convert(
|
||||
+ mode='P', dither=dither, palette=pmode, colors=num_colors
|
||||
+ )
|
||||
png_data, bit_depth, palette = self._writePng(img)
|
||||
if bit_depth is None or palette is None:
|
||||
raise RuntimeError("invalid PNG header")
|
||||
|
||||
From 520120b1646a16f82c3f1f392c9f8b084a0fec23 Mon Sep 17 00:00:00 2001
|
||||
From: Oscar Gustafsson <oscar.gustafsson@gmail.com>
|
||||
Date: Mon, 4 Apr 2022 18:13:01 +0200
|
||||
Subject: [PATCH 2/2] Revert the clenaup changes
|
||||
|
||||
---
|
||||
lib/matplotlib/animation.py | 18 ++++++++----------
|
||||
1 file changed, 8 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/lib/matplotlib/animation.py b/lib/matplotlib/animation.py
|
||||
index 4eae790d8200..879aa945b00d 100644
|
||||
--- a/lib/matplotlib/animation.py
|
||||
+++ b/lib/matplotlib/animation.py
|
||||
@@ -17,7 +17,6 @@
|
||||
# * Can blit be enabled for movies?
|
||||
# * Need to consider event sources to allow clicking through multiple figures
|
||||
|
||||
-
|
||||
import abc
|
||||
import base64
|
||||
import contextlib
|
||||
@@ -482,15 +481,14 @@ def grab_frame(self, **savefig_kwargs):
|
||||
def finish(self):
|
||||
# Call run here now that all frame grabbing is done. All temp files
|
||||
# are available to be assembled.
|
||||
- try:
|
||||
- self._run()
|
||||
- super().finish()
|
||||
- finally:
|
||||
- if self._tmpdir:
|
||||
- _log.debug(
|
||||
- 'MovieWriter: clearing temporary path=%s', self._tmpdir
|
||||
- )
|
||||
- self._tmpdir.cleanup()
|
||||
+ self._run()
|
||||
+ super().finish() # Will call clean-up
|
||||
+
|
||||
+ def _cleanup(self): # Inline to finish() once cleanup() is removed.
|
||||
+ super()._cleanup()
|
||||
+ if self._tmpdir:
|
||||
+ _log.debug('MovieWriter: clearing temporary path=%s', self._tmpdir)
|
||||
+ self._tmpdir.cleanup()
|
||||
|
||||
|
||||
@writers.register('pillow')
|
@ -1,3 +1,11 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 12 21:15:39 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Add matplotlib-pr22780-Pillow-deprecations.patch for
|
||||
deprecation errors with Pillow -- gh#matplotlib/matplotlib#22780
|
||||
- Skip any test with svg png or pdf in its id for non x86_64, as
|
||||
image comparison tests compare to x86_64 references.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 14 18:40:21 UTC 2021 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file
|
||||
#
|
||||
# Copyright (c) 2021 SUSE LLC
|
||||
# Copyright (c) 2022 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -41,7 +41,8 @@ Source1: matplotlib-mplsetup.cfg
|
||||
# Bundled version of freetype and qhull for testing purposes only
|
||||
Source98: http://www.qhull.org/download/qhull-2020-src-8.0.2.tgz
|
||||
Source99: https://downloads.sourceforge.net/project/freetype/freetype2/2.6.1/freetype-2.6.1.tar.gz
|
||||
|
||||
# PATCH-FIX-UPSTREAM matplotlib-pr22780-Pillow-deprecations.patch -- gh#matplotlib/matplotlib#22780
|
||||
Patch1: https://github.com/matplotlib/matplotlib/pull/22780.patch#/matplotlib-pr22780-Pillow-deprecations.patch
|
||||
BuildRequires: %{python_module Cycler >= 0.10}
|
||||
BuildRequires: %{python_module FontTools >= 4.22.0}
|
||||
BuildRequires: %{python_module devel}
|
||||
@ -244,7 +245,7 @@ This package includes the wxWidgets-based wxagg backend
|
||||
for %{name} plotting package
|
||||
|
||||
%prep
|
||||
%setup -q -n matplotlib-%{version}
|
||||
%autosetup -p1 -n matplotlib-%{version}
|
||||
#copy freetype to the right location, so that matplotlib will not try to download it
|
||||
mkdir -p ~/.cache/matplotlib/
|
||||
SHA=($(sha256sum %{SOURCE98}))
|
||||
@ -289,6 +290,12 @@ skip_tests+=" or (test_fig_close and Qt4Agg)"
|
||||
skip_tests+=" or test_invisible_Line_rendering"
|
||||
# too much memory consumption on obs parallel workers
|
||||
skip_tests+=" or (test_agg and chunksize) or test_throw_rendering_complexity_exceeded"
|
||||
%ifnarch x86_64
|
||||
# image comparison failures due to precisions dicrepancies to the x86 produced references
|
||||
skip_tests+=" or png or svg or pdf"
|
||||
# flaky signal termination tests inside obs
|
||||
skip_tests+=" or _sigint"
|
||||
%endif
|
||||
%{pytest_arch --pyargs matplotlib.tests \
|
||||
--pyargs mpl_toolkits.tests \
|
||||
-n auto \
|
||||
|
Loading…
Reference in New Issue
Block a user