Accepting request 979442 from devel:languages:python:numeric
OBS-URL: https://build.opensuse.org/request/show/979442 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-matplotlib?expand=0&rev=94
This commit is contained in:
commit
e28dbb0d47
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b2e9810e09c3a47b73ce9cab5a72243a1258f61e7900969097a817232246ce1c
|
|
||||||
size 35320470
|
|
3
matplotlib-3.5.2.tar.gz
Normal file
3
matplotlib-3.5.2.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:48cf850ce14fa18067f2d9e0d646763681948487a8080ec0af2686468b4607a2
|
||||||
|
size 35210006
|
@ -1,128 +0,0 @@
|
|||||||
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')
|
|
60
matplotlib-pr22975-fixarray.patch
Normal file
60
matplotlib-pr22975-fixarray.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
From 29ce2c226aafc170cb9b874e81b158c832322cf7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jody Klymak <jklymak@gmail.com>
|
||||||
|
Date: Thu, 5 May 2022 04:38:49 +0000
|
||||||
|
Subject: [PATCH] FIX: fix check_1d to also check for ndim
|
||||||
|
|
||||||
|
Arrays sometimes don't have all the methods arrays should have, so
|
||||||
|
add another check here. Plot requires both ndim and shape and this
|
||||||
|
will extract the numpy array if x does not have those attributes.
|
||||||
|
Otherwise leave the object alone, because unit support (currently only
|
||||||
|
in plot) requires the object to retain the unit info.
|
||||||
|
---
|
||||||
|
lib/matplotlib/cbook/__init__.py | 7 ++++++-
|
||||||
|
lib/matplotlib/tests/test_units.py | 19 +++++++++++++++++++
|
||||||
|
2 files changed, 25 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/matplotlib/cbook/__init__.py b/lib/matplotlib/cbook/__init__.py
|
||||||
|
index 774643fc9c99..5a955ed459c5 100644
|
||||||
|
--- a/lib/matplotlib/cbook/__init__.py
|
||||||
|
+++ b/lib/matplotlib/cbook/__init__.py
|
||||||
|
@@ -1333,7 +1333,12 @@ def _check_1d(x):
|
||||||
|
"""Convert scalars to 1D arrays; pass-through arrays as is."""
|
||||||
|
# Unpack in case of e.g. Pandas or xarray object
|
||||||
|
x = _unpack_to_numpy(x)
|
||||||
|
- if not hasattr(x, 'shape') or len(x.shape) < 1:
|
||||||
|
+ # plot requires `shape` and `ndim`. If passed an
|
||||||
|
+ # object that doesn't provide them, then force to numpy array.
|
||||||
|
+ # Note this will strip unit information.
|
||||||
|
+ if (not hasattr(x, 'shape') or
|
||||||
|
+ not hasattr(x, 'ndim') or
|
||||||
|
+ len(x.shape) < 1):
|
||||||
|
return np.atleast_1d(x)
|
||||||
|
else:
|
||||||
|
return x
|
||||||
|
diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py
|
||||||
|
index 93a12cebb2c8..d3b8c5a71643 100644
|
||||||
|
--- a/lib/matplotlib/tests/test_units.py
|
||||||
|
+++ b/lib/matplotlib/tests/test_units.py
|
||||||
|
@@ -264,3 +264,22 @@ def test_empty_default_limits(quantity_converter):
|
||||||
|
fig.draw_without_rendering()
|
||||||
|
assert ax.get_ylim() == (0, 100)
|
||||||
|
assert ax.get_xlim() == (28.5, 31.5)
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+# test array-like objects...
|
||||||
|
+class Kernel:
|
||||||
|
+ def __init__(self, array):
|
||||||
|
+ self._array = np.asanyarray(array)
|
||||||
|
+
|
||||||
|
+ def __array__(self):
|
||||||
|
+ return self._array
|
||||||
|
+
|
||||||
|
+ @property
|
||||||
|
+ def shape(self):
|
||||||
|
+ return self._array.shape
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+def test_plot_kernel():
|
||||||
|
+ # just a smoketest that fail
|
||||||
|
+ kernel = Kernel([1, 2, 3, 4, 5])
|
||||||
|
+ plt.plot(kernel)
|
@ -1,3 +1,18 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 26 16:23:46 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Skip a flaky leak test, move sigint test skip to all archs
|
||||||
|
- Add matplotlib-pr22975-fixarray.patch,
|
||||||
|
gh#matplotlib/matplotlib#22975, required for astropy 5.1
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 4 19:15:13 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 3.5.2:
|
||||||
|
* Preliminary support for Windows on arm64 target has been added; this
|
||||||
|
requires FreeType 2.11 or above.
|
||||||
|
- drop matplotlib-pr22780-Pillow-deprecations.patch (upstream)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Apr 12 21:15:39 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
Tue Apr 12 21:15:39 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ ExclusiveArch: x86_64 aarch64
|
|||||||
%bcond_with test
|
%bcond_with test
|
||||||
%endif
|
%endif
|
||||||
Name: python-matplotlib%{psuffix}
|
Name: python-matplotlib%{psuffix}
|
||||||
Version: 3.5.1
|
Version: 3.5.2
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Plotting Library for Python
|
Summary: Plotting Library for Python
|
||||||
License: SUSE-Matplotlib
|
License: SUSE-Matplotlib
|
||||||
@ -41,8 +41,8 @@ Source1: matplotlib-mplsetup.cfg
|
|||||||
# Bundled version of freetype and qhull for testing purposes only
|
# Bundled version of freetype and qhull for testing purposes only
|
||||||
Source98: http://www.qhull.org/download/qhull-2020-src-8.0.2.tgz
|
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
|
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
|
# PATCH-FIX-UPSTREAM matplotlib-pr22975-fixarray.patch -- gh#matplotlib/matplotlib#22975, required for astropy 5.1
|
||||||
Patch1: https://github.com/matplotlib/matplotlib/pull/22780.patch#/matplotlib-pr22780-Pillow-deprecations.patch
|
Patch1: https://github.com/matplotlib/matplotlib/pull/22975.patch#/matplotlib-pr22975-fixarray.patch
|
||||||
BuildRequires: %{python_module Cycler >= 0.10}
|
BuildRequires: %{python_module Cycler >= 0.10}
|
||||||
BuildRequires: %{python_module FontTools >= 4.22.0}
|
BuildRequires: %{python_module FontTools >= 4.22.0}
|
||||||
BuildRequires: %{python_module devel}
|
BuildRequires: %{python_module devel}
|
||||||
@ -93,6 +93,7 @@ BuildRequires: %{python_module matplotlib-testdata = %{version}}
|
|||||||
BuildRequires: %{python_module matplotlib-tk = %{version}}
|
BuildRequires: %{python_module matplotlib-tk = %{version}}
|
||||||
BuildRequires: %{python_module matplotlib-web = %{version}}
|
BuildRequires: %{python_module matplotlib-web = %{version}}
|
||||||
BuildRequires: %{python_module matplotlib-wx = %{version}}
|
BuildRequires: %{python_module matplotlib-wx = %{version}}
|
||||||
|
BuildRequires: %{python_module psutil}
|
||||||
BuildRequires: %{python_module pytest-xdist}
|
BuildRequires: %{python_module pytest-xdist}
|
||||||
BuildRequires: %{python_module pytest-xvfb}
|
BuildRequires: %{python_module pytest-xvfb}
|
||||||
BuildRequires: %{python_module pytest}
|
BuildRequires: %{python_module pytest}
|
||||||
@ -290,11 +291,13 @@ skip_tests+=" or (test_fig_close and Qt4Agg)"
|
|||||||
skip_tests+=" or test_invisible_Line_rendering"
|
skip_tests+=" or test_invisible_Line_rendering"
|
||||||
# too much memory consumption on obs parallel workers
|
# too much memory consumption on obs parallel workers
|
||||||
skip_tests+=" or (test_agg and chunksize) or test_throw_rendering_complexity_exceeded"
|
skip_tests+=" or (test_agg and chunksize) or test_throw_rendering_complexity_exceeded"
|
||||||
|
# testing interactive backend leaks inside obs is flaky
|
||||||
|
skip_tests+=" or (test_backends_interactive and test_figure_leak_20490)"
|
||||||
|
# flaky signal termination tests inside obs
|
||||||
|
skip_tests+=" or _sigint"
|
||||||
%ifnarch x86_64
|
%ifnarch x86_64
|
||||||
# image comparison failures due to precisions dicrepancies to the x86 produced references
|
# image comparison failures due to precisions dicrepancies to the x86 produced references
|
||||||
skip_tests+=" or png or svg or pdf"
|
skip_tests+=" or png or svg or pdf"
|
||||||
# flaky signal termination tests inside obs
|
|
||||||
skip_tests+=" or _sigint"
|
|
||||||
%endif
|
%endif
|
||||||
%{pytest_arch --pyargs matplotlib.tests \
|
%{pytest_arch --pyargs matplotlib.tests \
|
||||||
--pyargs mpl_toolkits.tests \
|
--pyargs mpl_toolkits.tests \
|
||||||
|
Loading…
Reference in New Issue
Block a user