1
0
python-matplotlib/python-matplotlib.spec

388 lines
15 KiB
RPMSpec
Raw Normal View History

#
# spec file for package python-matplotlib
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
# Not doing tests because they take too long
# The tests also pull in dependencies of all backends done in pure python
%global flavor @BUILD_FLAVOR@%{nil}
%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
%endif
Name: python-matplotlib%{psuffix}
Accepting request 821680 from home:TheBlackCat:branches:devel:languages:python:numeric - update to version 3.3.0 + Figure and Axes creation / management * Provisional API for composing semantic axes layouts from text or nested lists * GridSpec.subplots() * New Axes.sharex, Axes.sharey methods * tight_layout now supports suptitle * Setting axes box aspect + Colors and colormaps * Turbo colormap * colors.BoundaryNorm supports extend keyword argument * Text color for legend labels * Pcolor and Pcolormesh now accept shading='nearest' and 'auto' + Titles, ticks, and labels * Align labels to Axes edges * Allow tick formatters to be set with str or function inputs * Axes.set_title gains a y keyword argument to control auto positioning * Offset text is now set to the top when using axis.tick_top() * Set zorder of contour labels + Other changes * New Axes.axline method * imshow now coerces 3D arrays with depth 1 to 2D * Better control of Axes.pie normalization * Dates use a modern epoch * Lines now accept MarkerStyle instances as input + Fonts * Simple syntax to select fonts by absolute path * Improved font weight detection + rcParams improvements * matplotlib.rc_context can be used as a decorator * rcParams for controlling default "raise window" behavior * Add generalized mathtext.fallback to rcParams * Add contour.linewidth to rcParams + 3D Axes improvements * Axes3D no longer distorts the 3D plot to match the 2D aspect ratio * 3D axes now support minor ticks * Home/Forward/Backward buttons now work with 3D axes + Interactive tool improvements * More consistent toolbar behavior across backends * Toolbar icons are now styled for dark themes * Cursor text now uses a number of significant digits matching pointing precision * GTK / Qt zoom rectangle now black and white * Event handler simplifications + Functions to compute a Path's size * Better interface for Path segment iteration * Fixed bug that computed a Path's Bbox incorrectly + Backend-specific improvements * savefig() gained a backend keyword argument * The SVG backend can now render hatches with transparency * SVG supports URLs on more artists * Images in SVG will no longer be blurred in some viewers * Saving SVG now supports adding metadata * Saving PDF metadata via PGF now consistent with PDF backend * NbAgg and WebAgg no longer use jQuery & jQuery UI - Rebase no-builddir-freetype.patch OBS-URL: https://build.opensuse.org/request/show/821680 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-matplotlib?expand=0&rev=33
2020-07-18 21:48:28 +02:00
Version: 3.3.0
Release: 0
Summary: Plotting Library for Python
License: SUSE-Matplotlib
URL: https://matplotlib.org
Source: https://files.pythonhosted.org/packages/source/m/matplotlib/matplotlib-%{version}.tar.gz
Source1: matplotlib-setup.cfg
# Bundled version of freetype for testing purposes only
Source99: https://downloads.sourceforge.net/project/freetype/freetype2/2.6.1/freetype-2.6.1.tar.gz
Patch0: no-builddir-freetype.patch
BuildRequires: %{python_module Cycler >= 0.10}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module kiwisolver >= 1.0.1}
BuildRequires: %{python_module numpy >= 1.7.1}
BuildRequires: %{python_module numpy-devel >= 1.7.1}
BuildRequires: %{python_module pyparsing > 2.2.1}
BuildRequires: %{python_module pytz}
BuildRequires: %{python_module setuptools}
BuildRequires: c++_compiler
BuildRequires: fdupes
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: qhull-devel >= 2003.1
Requires: python-Cycler >= 0.10
Requires: python-Pillow >= 6.2
Requires: python-kiwisolver >= 1.0.1
Requires: python-numpy >= 1.7.1
Requires: python-pyparsing > 2.2.1
Requires: python-python-dateutil >= 2.7
Requires: python-pytz
Recommends: ghostscript
Recommends: libxml2-tools
Recommends: poppler-tools
Provides: python-matplotlib-gtk = %{version}
Obsoletes: python-matplotlib-gtk < %{version}
# SECTION WebAgg dependencies
BuildRequires: %{python_module tornado}
# /SECTION
# SECTION tk dependencies via tcl
BuildRequires: tcl
BuildRequires: pkgconfig(freetype2) >= 2.3
BuildRequires: pkgconfig(libpng) >= 1.2
BuildRequires: pkgconfig(tcl)
# /SECTION
%if %{with test}
BuildRequires: %{python_module Pillow >= 6.2}
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.7}
# SECTION cairo dependencies
BuildRequires: %{python_module cairo}
# /SECTION
# SECTION GTK3 dependencies
BuildRequires: %{python_module gobject-Gdk}
# /SECTION
# SECTION Qt5 dependencies
BuildRequires: %{python_module qt5}
BuildRequires: pkgconfig(gtk+-3.0)
# /SECTION
# SECTION tk dependencies
BuildRequires: %{python_module tk}
# /SECTION
# SECTION Wx dependencies
BuildRequires: %{python_module wxPython >= 4}
# /SECTION
# SECTION latex dependencies
BuildRequires: ghostscript
BuildRequires: inkscape
BuildRequires: poppler-tools
BuildRequires: texlive-dvipng
BuildRequires: texlive-latex
BuildRequires: texlive-sfmath
BuildRequires: texlive-tex
BuildRequires: tex(8a.enc)
BuildRequires: tex(helvet.sty)
BuildRequires: tex(phvr7t.tfm)
BuildRequires: tex(pncr7t.tfm)
BuildRequires: tex(psfrag.sty)
BuildRequires: tex(type1cm.sty)
BuildRequires: tex(ucs.sty)
# /SECTION
%endif
Recommends: (python-matplotlib-tk if tk)
%python_subpackages
%description
matplotlib is a python 2D plotting library which produces publication
quality figures in a variety of hardcopy formats and interactive
environments across platforms. matplotlib can be used in python
scripts, the python and ipython shell (ala matlab or mathematica), web
application servers, and six graphical user interface toolkits.
%package cairo
Summary: Cairo backend for %{name}
License: SUSE-Matplotlib
Requires: %{name} = %{version}
Accepting request 703996 from home:TheBlackCat:branches:devel:languages:python:numeric - update to version 3.1.0: + New Features * `~.dates.ConciseDateFormatter` * Secondary x/y Axis support * `~.scale.FuncScale` for arbitrary axes scales * Legend for scatter * Matplotlib no longer requires framework app build on MacOSX backend + Figure, FigureCanvas, and Backends * Figure.frameon is now a direct proxy for the Figure patch visibility state * *pil_kwargs* argument added to savefig * Add ``inaxes`` method to `.FigureCanvasBase` * cairo backend defaults to pycairo instead of cairocffi + Axes and Artists * axes_grid1 and axisartist Axes no longer draw spines twice * Return type of ArtistInspector.get_aliases changed * `.ConnectionPatch` accepts arbitrary transforms * mplot3d Line3D now allows {set,get}_data_3d * ``Axes3D.voxels`` now shades the resulting voxels + Axis and Ticks * Added `.Axis.get_inverted` and `.Axis.set_inverted` * Adjust default minor tick spacing * `.EngFormatter` now accepts `usetex`, `useMathText` as keyword only arguments + Animation and Interactivity * Support for forward/backward mouse buttons * *progress_callback* argument to `~.Animation.save()` * Add ``cache_frame_data`` keyword-only argument into `.animation.FuncAnimation` * Endless Looping GIFs with PillowWriter * Adjusted `.matplotlib.widgets.Slider` to have vertical orientation * Improved formatting of image values under cursor when a colorbar is present * MouseEvent button attribute is now an IntEnum + Configuration, Install, and Development * The MATPLOTLIBRC environment variable can now point to any "file" path * Allow LaTeX code ``pgf.preamble`` and ``text.latex.preamble`` in MATPLOTLIBRC file * New logging API - Switch to upstream-recommended python-cairo instead of python-cairocffi OBS-URL: https://build.opensuse.org/request/show/703996 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-matplotlib?expand=0&rev=15
2019-05-19 07:15:06 +02:00
Requires: python-cairo
%description cairo
This package includes the non-interactive Cairo-based backend
for the %{name} plotting package
%package gtk3
Summary: GTK3 backends for %{name}
License: BSD-2-Clause
Requires: %{name} = %{version}
Requires: %{name}-cairo = %{version}
Requires: python-gobject-Gdk
%description gtk3
This package includes the GTK3-based gtk3, gtk3agg, and
gtk3cairo backends for the %{name} plotting package
%package latex
Summary: Allow rendering latex in %{name}
License: BSD-2-Clause
Requires: %{name} = %{version}
Requires: texlive-dvipng
Requires: texlive-latex
Requires: texlive-sfmath
Requires: texlive-tex
%description latex
This package allows %{name} to display latex in plots
and figures.
%package qt5
Summary: Qt5 backend for %{name}
License: BSD-2-Clause
Requires: %{name} = %{version}
Requires: python-qt5
Provides: %{name}-qt-shared = %{version}
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
Requires: %{name} = %{version}
Requires: python-tk
Requires: tcl >= 8.3
%description tk
This package includes the Tk-based tkagg backend
for the %{name} plotting package
%package web
Summary: Web backend for %{name}
License: BSD-2-Clause
Requires: %{name} = %{version}
Requires: python-tornado
%description web
This package includes the browser-based webagg backend
for the %{name} plotting package
%package wx
Summary: WxWidgets backend for %{name}
License: BSD-2-Clause
Requires: %{name} = %{version}
Requires: python-wxPython >= 4
%description wx
This package includes the wxWidgets-based wxagg backend
for %{name} plotting package
%prep
%setup -q -n matplotlib-%{version} -a99
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
%build
%if !%{with test}
%python_build
%endif
%install
%if !%{with test}
%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
# 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}
%files %{python_files}
%doc README.rst
%doc examples/
%license LICENSE/
%license doc/users/license.rst
%{python_sitearch}/matplotlib/
%{python_sitearch}/matplotlib-%{version}-py*.egg-info
%{python_sitearch}/matplotlib-%{version}-py*-nspkg.pth
%{python_sitearch}/mpl_toolkits
%{python_sitearch}/pylab.py*
%pycache_only %{python_sitearch}/__pycache__/pylab.*
%exclude %{python_sitearch}/matplotlib/backends/backend_cairo.*
%exclude %{python_sitearch}/matplotlib/backends/backend_gtk3.*
%exclude %{python_sitearch}/matplotlib/backends/backend_gtk3agg.*
%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/web_backend/
%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/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}
%license LICENSE/
%license doc/users/license.rst
%files %{python_files cairo}
%license LICENSE/
%license doc/users/license.rst
%{python_sitearch}/matplotlib/backends/backend_cairo.py*
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_cairo.*.py*
%files %{python_files gtk3}
%license LICENSE/
%license doc/users/license.rst
%{python_sitearch}/matplotlib/backends/backend_gtk3.py*
%{python_sitearch}/matplotlib/backends/backend_gtk3agg.py*
%{python_sitearch}/matplotlib/backends/backend_gtk3cairo.py*
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_gtk3.*.py*
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_gtk3agg.*.py*
%pycache_only %{python_sitearch}/matplotlib/backends/__pycache__/backend_gtk3cairo.*.py*
%files %{python_files qt5}
%license LICENSE/
%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/
%license doc/users/license.rst
%{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*
%files %{python_files wx}
%license LICENSE/
%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