Accepting request 821989 from home:bnavigator:branches:devel:languages:python:numeric
- Work on unit testing * Move architecture selection to bcond definition at top of specfile. This makes it clear in the OBS web UI that the test flavor is only built for x86_64 and aarch64 * do not build everything a second time during check (in-place) * instead use new subpackage testdata wich contains the baseline images created at regular build time * use pytest-xvfb and %pytest macro (buildroot path actually not required) * tidy test skip definitions * add python-gobject-Gdk to pass the gtk3 backend testso - include version for obsoletes -qt-shared (rpmlint warning) - move some cairo files to backend packages - remove python2 transition requirements mock and six - update matplotlib-setup.cfg OBS-URL: https://build.opensuse.org/request/show/821989 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-matplotlib?expand=0&rev=34
This commit is contained in:
parent
b550c4f9fa
commit
47443e9f1a
@ -1,98 +1,40 @@
|
||||
# Rename this file to setup.cfg to modify Matplotlib's
|
||||
# build options.
|
||||
# Rename this file to setup.cfg to modify Matplotlib's build options.
|
||||
|
||||
[egg_info]
|
||||
|
||||
[directories]
|
||||
# Uncomment to override the default basedir in setupext.py.
|
||||
# This can be a single directory or a comma-delimited list of directories.
|
||||
#basedirlist = /usr
|
||||
|
||||
[test]
|
||||
# If you plan to develop Matplotlib and run or add to the test suite,
|
||||
# set this to True. It will download and build a specific version of
|
||||
# FreeType, and then use that to build the ft2font extension. This
|
||||
# ensures that test images are exactly reproducible.
|
||||
#local_freetype = False
|
||||
|
||||
[status]
|
||||
# To suppress display of the dependencies and their versions
|
||||
# at the top of the build log, uncomment the following line:
|
||||
#suppress = True
|
||||
[libs]
|
||||
# By default, Matplotlib builds with LTO, which may be slow if you re-compile
|
||||
# often, and don't need the space saving/speedup.
|
||||
#enable_lto = True
|
||||
# By default, Matplotlib downloads and builds its own copy of FreeType, and
|
||||
# builds its own copy of Qhull. You may set the following to True to instead
|
||||
# link against a system FreeType/Qhull.
|
||||
#system_freetype = False
|
||||
#system_qhull = False
|
||||
|
||||
[packages]
|
||||
# There are a number of subpackages of Matplotlib that are considered
|
||||
# optional. All except tests are installed by default, but that can
|
||||
# be changed here.
|
||||
#
|
||||
# There are a number of data subpackages from Matplotlib that are
|
||||
# considered optional. All except 'tests' data (meaning the baseline
|
||||
# image files) are installed by default, but that can be changed here.
|
||||
tests = True
|
||||
sample_data = True
|
||||
toolkits = True
|
||||
# Tests for the toolkits are only automatically installed
|
||||
# if the tests and toolkits packages are also getting installed.
|
||||
#toolkits_tests = auto
|
||||
|
||||
[gui_support]
|
||||
# Matplotlib supports multiple GUI toolkits, including
|
||||
# GTK, MacOSX, Qt4, Qt5, Tk, and WX. Support for many of
|
||||
# these toolkits requires AGG, the Anti-Grain Geometry library,
|
||||
# which is provided by Matplotlib and built by default.
|
||||
# Matplotlib supports multiple GUI toolkits, known as backends.
|
||||
# The MacOSX backend requires the Cocoa headers included with XCode.
|
||||
# You can select whether to build it by uncommenting the following line.
|
||||
# It is never built on Linux or Windows, regardless of the config value.
|
||||
#
|
||||
# Some backends are written in pure Python, and others require
|
||||
# extension code to be compiled. By default, Matplotlib checks for
|
||||
# these GUI toolkits during installation and, if present, compiles the
|
||||
# required extensions to support the toolkit.
|
||||
#
|
||||
# - GTK 2.x support of any kind requires the GTK runtime environment
|
||||
# headers and PyGTK.
|
||||
# - Tk support requires Tk development headers and Tkinter.
|
||||
# - Mac OSX backend requires the Cocoa headers included with XCode.
|
||||
# - Windowing is MS-Windows specific, and requires the "windows.h"
|
||||
# header.
|
||||
#
|
||||
# The other GUI toolkits do not require any extension code, and can be
|
||||
# used as long as the libraries are installed on your system --
|
||||
# therefore they are installed unconditionally.
|
||||
#
|
||||
# You can uncomment any the following lines to change this
|
||||
# behavior. Acceptible values are:
|
||||
#
|
||||
# True: build the extension. Exits with a warning if the
|
||||
# required dependencies are not available
|
||||
# False: do not build the extension
|
||||
# auto: build if the required dependencies are available,
|
||||
# otherwise skip silently. This is the default
|
||||
# behavior
|
||||
#
|
||||
agg = True
|
||||
cairo = Auto
|
||||
gtk3agg = Auto
|
||||
gtk3cairo = Auto
|
||||
pyside = Auto
|
||||
qt4agg = Auto
|
||||
tkagg = Auto
|
||||
wxagg = Auto
|
||||
gtk = False
|
||||
gtkagg = False
|
||||
macosx = False
|
||||
windowing = False
|
||||
#macosx = True
|
||||
|
||||
[rc_options]
|
||||
# User-configurable options
|
||||
#
|
||||
# Default backend, one of: Agg, Cairo, GTK, GTKAgg, GTKCairo,
|
||||
# GTK3Agg, GTK3Cairo, MacOSX, Pdf, Ps, Qt4Agg, Qt5Agg, SVG, TkAgg, WX, WXAgg.
|
||||
# Default backend, one of: Agg, Cairo, GTK3Agg, GTK3Cairo, MacOSX, Pdf, Ps,
|
||||
# Qt4Agg, Qt5Agg, SVG, TkAgg, WX, WXAgg.
|
||||
#
|
||||
# The Agg, Ps, Pdf and SVG backends do not require external
|
||||
# dependencies. Do not choose GTK, GTKAgg, GTKCairo, MacOSX, or TkAgg
|
||||
# if you have disabled the relevent extension modules. Agg will be used
|
||||
# by default.
|
||||
# The Agg, Ps, Pdf and SVG backends do not require external dependencies. Do
|
||||
# not choose MacOSX if you have disabled the relevant extension modules. The
|
||||
# default is determined by fallback.
|
||||
#
|
||||
backend = Agg
|
||||
#
|
||||
|
||||
[package_data]
|
||||
# Package additional files found in the lib/matplotlib directories.
|
||||
#
|
||||
# On Windows, package DLL files.
|
||||
#dlls = True
|
||||
#backend = Agg
|
||||
|
@ -1,3 +1,22 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 20 21:10:29 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
|
||||
|
||||
- Work on unit testing
|
||||
* Move architecture selection to bcond definition at top of
|
||||
specfile. This makes it clear in the OBS web UI that the test
|
||||
flavor is only built for x86_64 and aarch64
|
||||
* do not build everything a second time during check (in-place)
|
||||
* instead use new subpackage testdata wich contains the baseline
|
||||
images created at regular build time
|
||||
* use pytest-xvfb and %pytest macro
|
||||
(buildroot path actually not required)
|
||||
* tidy test skip definitions
|
||||
* add python-gobject-Gdk to pass the gtk3 backend testso
|
||||
- include version for obsoletes -qt-shared (rpmlint warning)
|
||||
- move some cairo files to backend packages
|
||||
- remove python2 transition requirements mock and six
|
||||
- update matplotlib-setup.cfg
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jul 18 19:20:56 UTC 2020 - Todd R <toddrme2178@gmail.com>
|
||||
|
||||
|
@ -24,6 +24,8 @@
|
||||
%if "%{flavor}" == "test"
|
||||
%define psuffix -test
|
||||
%bcond_without test
|
||||
# Run on 64bit intel and arm only, on others there are >100 test failures
|
||||
ExclusiveArch: x86_64 aarch64
|
||||
%else
|
||||
%define psuffix %{nil}
|
||||
%bcond_with test
|
||||
@ -47,7 +49,6 @@ BuildRequires: %{python_module numpy-devel >= 1.7.1}
|
||||
BuildRequires: %{python_module pyparsing > 2.1.6}
|
||||
BuildRequires: %{python_module pytz}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module six >= 1.10}
|
||||
BuildRequires: c++_compiler
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: pkgconfig
|
||||
@ -59,7 +60,6 @@ Requires: python-numpy >= 1.7.1
|
||||
Requires: python-pyparsing > 2.1.6
|
||||
Requires: python-python-dateutil >= 2.1
|
||||
Requires: python-pytz
|
||||
Requires: python-six >= 1.10
|
||||
Recommends: ghostscript
|
||||
Recommends: libxml2-tools
|
||||
Recommends: poppler-tools
|
||||
@ -77,18 +77,25 @@ BuildRequires: pkgconfig(tcl)
|
||||
# /SECTION
|
||||
%if %{with test}
|
||||
BuildRequires: %{python_module Pillow}
|
||||
BuildRequires: %{python_module mock}
|
||||
BuildRequires: %{python_module matplotlib-cairo = %{version}}
|
||||
BuildRequires: %{python_module matplotlib-gtk3 = %{version}}
|
||||
BuildRequires: %{python_module matplotlib-qt5 = %{version}}
|
||||
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 pytest-xdist}
|
||||
BuildRequires: %{python_module pytest-xvfb}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module python-dateutil >= 2.1}
|
||||
# SECTION cairo dependencies
|
||||
BuildRequires: %{python_module cairo}
|
||||
# /SECTION
|
||||
# SECTION GTK3 dependencies
|
||||
BuildRequires: %{python_module gobject}
|
||||
BuildRequires: %{python_module gobject-Gdk}
|
||||
# /SECTION
|
||||
# SECTION Qt5 dependencies
|
||||
BuildRequires: %{python_module qt5}
|
||||
BuildRequires: xvfb-run
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
# /SECTION
|
||||
# SECTION tk dependencies
|
||||
@ -139,7 +146,7 @@ Summary: GTK3 backends for %{name}
|
||||
License: BSD-2-Clause
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{name}-cairo = %{version}
|
||||
Requires: python-gobject
|
||||
Requires: python-gobject-Gdk
|
||||
|
||||
%description gtk3
|
||||
This package includes the GTK3-based gtk3, gtk3agg, and
|
||||
@ -164,12 +171,21 @@ License: BSD-2-Clause
|
||||
Requires: %{name} = %{version}
|
||||
Requires: python-qt5
|
||||
Provides: %{name}-qt-shared = %{version}
|
||||
Obsoletes: %{name}-qt-shared
|
||||
Obsoletes: %{name}-qt-shared < %{version}
|
||||
|
||||
%description qt5
|
||||
This package includes the Qt5-based pyqt5 backend
|
||||
for the %{name} plotting package
|
||||
|
||||
%package testdata
|
||||
Summary: Test data for %{name}
|
||||
License: BSD-2-Clause
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description testdata
|
||||
This package includes the test baseline data
|
||||
for the %{name} plotting package
|
||||
|
||||
%package tk
|
||||
Summary: Tk backend for %{name}
|
||||
License: BSD-2-Clause
|
||||
@ -207,51 +223,39 @@ chmod -x lib/matplotlib/mpl-data/images/*.svg
|
||||
find examples lib/matplotlib lib/mpl_toolkits/mplot3d -type f -name "*.py" -exec sed -i "s|#!\/usr\/bin\/env python||" {} \;
|
||||
find examples lib/matplotlib lib/mpl_toolkits/mplot3d -type f -name "*.py" -exec sed -i "s|#!\/usr\/bin\/python||" {} \;
|
||||
cp %{SOURCE1} setup.cfg
|
||||
|
||||
%patch0 -p1
|
||||
|
||||
%if !%{with test}
|
||||
sed -i -e 's/tests = .*/tests = False/' setup.cfg
|
||||
%else
|
||||
# As freetype changes the behaviour slightly for tests always use the bundled freetype
|
||||
sed -i -e 's:#local_freetype = False:local_freetype = True:' setup.cfg
|
||||
%endif
|
||||
|
||||
%build
|
||||
%if !%{with test}
|
||||
export XDG_RUNTIME_DIR=/tmp
|
||||
%python_build
|
||||
%endif
|
||||
|
||||
%install
|
||||
%if !%{with test}
|
||||
export XDG_RUNTIME_DIR=/tmp
|
||||
%python_install
|
||||
%{python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
$python -m compileall -d %{$python_sitearch} %{buildroot}%{$python_sitearch}/matplotlib/backends/qt_editor/
|
||||
$python -O -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitearch}/matplotlib/backends/qt_editor/
|
||||
%fdupes %{buildroot}%{$python_sitearch}/matplotlib/backends/qt_editor/
|
||||
sed -i -e "s/install matplotlib from source/install the ${python_flavor}-matplotlib-testdata package/" \
|
||||
%{buildroot}%{$python_sitearch}/matplotlib/tests/__init__.py
|
||||
}
|
||||
%endif
|
||||
|
||||
%if %{with test}
|
||||
%check
|
||||
# test_savefig_to_stringio - generated ps is differing a bit
|
||||
# test_interactive_backend - needs full X session
|
||||
# test_bbox_inches_tight_raster - resulting PNGs look differently
|
||||
# test_backend_fallback_headful - fails to detect X session with xvfb
|
||||
# test_usetex - png differs
|
||||
# test_pdflatex - output slightly differs
|
||||
# test_labels test_collection - fails on aarch64
|
||||
# test_fig_signals - races and fails randomly
|
||||
# test_otf - fails with tex 2020
|
||||
# Run on 64bit intel and arm only, on others there are >100 test failures
|
||||
%ifarch x86_64 aarch64
|
||||
export XDG_RUNTIME_DIR=/tmp
|
||||
export PYTHONDONTWRITEBYTECODE=1
|
||||
%python_exec setup.py build_ext --inplace
|
||||
%python_expand PYTHONPATH=./lib xvfb-run $python -m pytest -v -n auto -k 'not (test_savefig_to_stringio or test_interactive_backend or test_bbox_inches_tight_raster or test_backend_fallback_headful or test_usetex or test_pdflatex or test_labels or test_collection or test_otf or test_fig_signals)'
|
||||
%endif
|
||||
# fails to detect alternative backend within xvfb
|
||||
skip_tests+=" or test_backend_fallback_headful"
|
||||
# test_usetex.py::test_usetex[png] - no tex text -- do not skip test_empty[png] and test_unicode_minus[png]
|
||||
skip_tests+=" or (test_usetex and png and not empty and not unicode)"
|
||||
# output slightly differs: text moves a bit
|
||||
skip_tests+=" or test_pdflatex"
|
||||
# we do not ship the qt4 backend
|
||||
skip_tests+=" or (test_correct_key and Qt4Agg)"
|
||||
skip_tests+=" or (test_fig_close and Qt4Agg)"
|
||||
# timing tests on obs can fail unpredictably
|
||||
skip_tests+=" or test_invisible_Line_rendering"
|
||||
%pytest_arch --pyargs matplotlib.tests --pyargs mpl_toolkits.tests -n auto -k "not ( ${skip_tests:4} )"
|
||||
%endif
|
||||
|
||||
%if !%{with test}
|
||||
@ -272,34 +276,41 @@ export PYTHONDONTWRITEBYTECODE=1
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_gtk3cairo.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt4.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt4agg.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt4cairo.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt5.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt5agg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt5cairo.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_tkagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_tkcairo.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_webagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_webagg_core.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_wx.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_wxagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_wxcairo.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/qt_compat.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/qt_editor/
|
||||
%exclude %{python_sitearch}/matplotlib/backends/tkagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/web_backend/
|
||||
%exclude %{python_sitearch}/matplotlib/backends/wx_compat.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_cairo.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_gtk3.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_gtk3agg.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_gtk3cairo.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_qt4.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_qt4agg.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_qt4cairo.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_qt5.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_qt5agg.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_qt5cairo.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_tkagg.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_tkcairo.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_webagg.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_webagg_core.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_wx.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_wxagg.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/backend_wxcairo.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/qt_compat.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/tkagg.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/__pycache__/wx_compat.*.py*
|
||||
%exclude %{python_sitearch}/matplotlib/tests/baseline_images
|
||||
%exclude %{python_sitearch}/matplotlib/tests/tinypages
|
||||
%exclude %{python_sitearch}/mpl_toolkits/tests/baseline_images
|
||||
|
||||
# Dummy package to pull in latex dependencies.
|
||||
%files %{python_files latex}
|
||||
@ -327,17 +338,30 @@ export PYTHONDONTWRITEBYTECODE=1
|
||||
%license doc/users/license.rst
|
||||
%{python_sitearch}/matplotlib/backends/backend_qt5.py*
|
||||
%{python_sitearch}/matplotlib/backends/backend_qt5agg.py*
|
||||
%{python_sitearch}/matplotlib/backends/backend_qt5cairo.py*
|
||||
%{python_sitearch}/matplotlib/backends/qt_compat.py*
|
||||
%{python_sitearch}/matplotlib/backends/qt_editor/
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_qt5.*.py*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_qt5agg.*.py*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_qt5cairo.*.py*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/qt_compat.*.py*
|
||||
|
||||
%files %{python_files testdata}
|
||||
%license LICENSE/
|
||||
%license doc/users/license.rst
|
||||
%{python_sitearch}/matplotlib/tests/baseline_images
|
||||
%{python_sitearch}/matplotlib/tests/tinypages
|
||||
%{python_sitearch}/mpl_toolkits/tests/baseline_images
|
||||
%exclude %{python_sitearch}/matplotlib/tests/tinypages/.gitignore
|
||||
%exclude %{python_sitearch}/matplotlib/tests/tinypages/_static/.gitignore
|
||||
|
||||
%files %{python_files tk}
|
||||
%license LICENSE/
|
||||
%license doc/users/license.rst
|
||||
%{python_sitearch}/matplotlib/backends/backend_tkagg.py*
|
||||
%{python_sitearch}/matplotlib/backends/backend_tkcairo.py*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_tkagg.*.py*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_tkcairo.*.py*
|
||||
|
||||
%files %{python_files web}
|
||||
%license LICENSE/
|
||||
@ -345,6 +369,7 @@ export PYTHONDONTWRITEBYTECODE=1
|
||||
%{python_sitearch}/matplotlib/backends/backend_webagg.py*
|
||||
%{python_sitearch}/matplotlib/backends/backend_webagg_core.py*
|
||||
%{python_sitearch}/matplotlib/backends/web_backend/
|
||||
%exclude %{python_sitearch}/matplotlib/backends/web_backend/.*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_webagg.*.py*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_webagg_core.*.py*
|
||||
|
||||
@ -353,8 +378,10 @@ export PYTHONDONTWRITEBYTECODE=1
|
||||
%license doc/users/license.rst
|
||||
%{python_sitearch}/matplotlib/backends/backend_wx.py*
|
||||
%{python_sitearch}/matplotlib/backends/backend_wxagg.py*
|
||||
%{python_sitearch}/matplotlib/backends/backend_wxcairo.py*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_wx.*.py*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_wxagg.*.py*
|
||||
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_wxcairo.*.py*
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
Loading…
Reference in New Issue
Block a user