1
0

Accepting request 979387 from home:bnavigator:branches:devel:languages:python:numeric

- 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

OBS-URL: https://build.opensuse.org/request/show/979387
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-matplotlib?expand=0&rev=61
This commit is contained in:
Markéta Machová 2022-05-27 07:09:07 +00:00 committed by Git OBS Bridge
parent 61583fdf9b
commit a1ff5e2405
3 changed files with 74 additions and 2 deletions

View 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)

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
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>

View File

@ -41,6 +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-pr22975-fixarray.patch -- gh#matplotlib/matplotlib#22975, required for astropy 5.1
Patch1: https://github.com/matplotlib/matplotlib/pull/22975.patch#/matplotlib-pr22975-fixarray.patch
BuildRequires: %{python_module Cycler >= 0.10}
BuildRequires: %{python_module FontTools >= 4.22.0}
BuildRequires: %{python_module devel}
@ -91,6 +93,7 @@ BuildRequires: %{python_module matplotlib-testdata = %{version}}
BuildRequires: %{python_module matplotlib-tk = %{version}}
BuildRequires: %{python_module matplotlib-web = %{version}}
BuildRequires: %{python_module matplotlib-wx = %{version}}
BuildRequires: %{python_module psutil}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest-xvfb}
BuildRequires: %{python_module pytest}
@ -288,11 +291,13 @@ 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"
# 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
# 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 \