summaryrefslogtreecommitdiff
path: root/dev-python/matplotlib
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-08-25 10:45:55 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-08-25 10:45:55 +0100
commit3cf7c3ef441822c889356fd1812ebf2944a59851 (patch)
treec513fe68548b40365c1c2ebfe35c58ad431cdd77 /dev-python/matplotlib
parent05b8b0e0af1d72e51a3ee61522941bf7605cd01c (diff)
gentoo resync : 25.08.2020
Diffstat (limited to 'dev-python/matplotlib')
-rw-r--r--dev-python/matplotlib/Manifest20
-rw-r--r--dev-python/matplotlib/files/matplotlib-2.2.2-doc-make.patch10
-rw-r--r--dev-python/matplotlib/files/matplotlib-2.2.4-doc-fix.patch18
-rw-r--r--dev-python/matplotlib/files/matplotlib-2.2.4-no-jqueryui-download.patch18
-rw-r--r--dev-python/matplotlib/files/matplotlib-3.1.2-no-jqueryui-download.patch15
-rw-r--r--dev-python/matplotlib/files/matplotlib-3.2.1-test.patch432
-rw-r--r--dev-python/matplotlib/files/matplotlib-3.3.0-test.patch225
-rw-r--r--dev-python/matplotlib/matplotlib-2.2.2-r1.ebuild250
-rw-r--r--dev-python/matplotlib/matplotlib-2.2.4.ebuild253
-rw-r--r--dev-python/matplotlib/matplotlib-3.2.2-r1.ebuild (renamed from dev-python/matplotlib/matplotlib-3.2.2.ebuild)4
-rw-r--r--dev-python/matplotlib/matplotlib-3.3.0.ebuild (renamed from dev-python/matplotlib/matplotlib-3.2.1.ebuild)16
-rw-r--r--dev-python/matplotlib/matplotlib-3.3.1-r1.ebuild (renamed from dev-python/matplotlib/matplotlib-3.1.2.ebuild)151
12 files changed, 342 insertions, 1070 deletions
diff --git a/dev-python/matplotlib/Manifest b/dev-python/matplotlib/Manifest
index ee37954791ef..47d80a8f7c18 100644
--- a/dev-python/matplotlib/Manifest
+++ b/dev-python/matplotlib/Manifest
@@ -1,19 +1,11 @@
-AUX matplotlib-2.2.2-doc-make.patch 363 BLAKE2B 043318c6a584427497f284d1e770b7a7e2cff2fb40b12c4a1a684336ddede6967c01392b722d128b4b4138b2833968f8ed67a3a412c4cbb4fb23f167b4f28851 SHA512 043a4d00c69db6f3c5473514d103c1beb0685eb329ece5596caf80740f64e0c2bcb114f889c11782a7913b9d3f86614f7bb8aedcf902c41f9d1cc7a2f6ac8e51
-AUX matplotlib-2.2.4-doc-fix.patch 629 BLAKE2B 61549eac0d67275117750ad11a7b4aabe9d81783b0d603039266b88d6fe42edce4ca222df4666d83b9e4ff069a4a794b836ef40c748c921c0f092b6c01ff3b9b SHA512 ebf3cf7611a6f6f819546805443e9932a4cb3c77eb0eff507e94667ec32462ac5ee99be689d6523cf7111f16776d0837c14f469f674530a36e95343b2803581b
-AUX matplotlib-2.2.4-no-jqueryui-download.patch 708 BLAKE2B 8ad1b3cef23a5bf1dbaaff22367ecc09608945244852552bc22f86ae6350d4683821f4b2d7d9fd76c0e701724e17508c99fda0205d420ed21c35164533bd3dd6 SHA512 8d783f6978403737ea65741a71e0c4ca7e428297504c11351f38616d01ebf60428eb993585f27c5d39dc607bb76e146b4e642bc295fc18ce3008e868a9cc6b5a
-AUX matplotlib-3.1.2-no-jqueryui-download.patch 544 BLAKE2B aa5e55ec734f3847579864d2d9133da9b4d483ce91b9418dd275ced1f7367e7ceee728f0f4a271743e50b554980005871982bfabd523d8b20d0bdb0f2966d3f8 SHA512 a5900df8735bc6956ce9ea79334d4eb22f8029b9c025e81ead16d41fb061fb94dfcd8d2e773b70bbb8912469b18e18ec194f5bfce0ec668a5be423f1b9de0d7b
AUX matplotlib-3.1.2-qhull.patch 768 BLAKE2B 480f213014c4f50f7926679a826e282937f25043f530f01d38ac3c4b1672b37a0cd52466bd5f6c66957de5a871b30dfea58e42a6f389a005347220e4d73cb97d SHA512 d25b5888a03b82ddf8e8d415905663e4e77041ce17fb37ac3562ba126048373abc1203acfd0643c1544f1d0ac9f3232447c3f60295daa5528346e80142848420
-AUX matplotlib-3.2.1-test.patch 17670 BLAKE2B 7cd7b29ee7025fcdd21496ab0327ba3b78f608a32bac17a0cbdc720da0911cb9e3f2e16097a2e473c11841fe80ca5ebc94f312b54a6dcc27bacb1a2ebd384011 SHA512 113decad09a49c7f4dbd57deb49bf0e22f46f8953a86908bba936ae414254930755861db7e56242c8759e08637ece7d8821c27542a0503747caf3947eda41e93
AUX matplotlib-3.2.2-test.patch 16508 BLAKE2B 42ed1e5b59f3248dd0c8786769a9694e2e29dbde11d2bc8cff4dc6773663d7f777ee7e125ef9261ec10dd142b686396408d2e5a87939b74ed2c1f8c1ff0c7841 SHA512 e8689c978b7055f01ed7b996b6a25f716039c2bc146bc74cfeb8adb3e29739ddb5e0c5749b220ffb346ef95ad09dbed2339315e357c35d3a9b46d03c21a3382c
+AUX matplotlib-3.3.0-test.patch 9618 BLAKE2B f239d5c16be50b601c91e47e9c43c928beeaddb22be236a17244f289c9032564d3bb1e2e5bd63f6017e51d71008efbd8c86ccc96eed0d30abc50537563720271 SHA512 445076feec916e508a3673babacbf8a8372a6f05c3d067eb77584c4352387d1bc3b1dc6c76beb18549df4601b50943d271c8db510f30748dbcdfc56727030b41
DIST freetype-2.6.1.tar.gz 2302080 BLAKE2B 6a5fb98e5fa6cf4b7d7533ad44e364227d8c2f7dded4c552d6e22e204c32b7858f20d41d1e809ecdad6e5353d6cec81bea0e0b06a4533363a41ecab83ce3f7ca SHA512 ff2daed64d712737085924c50e75862fafbcbb24eef6d72dac9eaae63bb656d7245397fd828f5d3e47ac847f7ff83d73dedfdd61fde1f7d6e0f0cdeb49bcf83b
-DIST matplotlib-2.2.2.tar.gz 37317332 BLAKE2B 4120265263c5b1e4ab57f7c0eb7a477b4071a5f219d1d6328d6ed51d44460217c7c4da82a4b7d13c6ba9f80308406a217f2dbcfa310f3137cbe8bc56a9ef0eef SHA512 1d21ef821190f22354098f8f0db6449f237acbf3c1419ab3815ecd4e9c6922fd3f00c4a8f60858e319b55b6fb2e8fe2922c0bf8e72b204e7edff0b409cf76320
-DIST matplotlib-2.2.4.tar.gz 36974286 BLAKE2B 9c4c69163a23ff02107ee155f72e142dcf31ba965f6a20f468b96f3f4b70b95ff6caade6b14bcbacd5b231848d2000ce6af9f113feefb41d6e186725349490d3 SHA512 968f5731b8a9a2c5575403c60d5b0a98a452b33094e520be44f4d901f892d082babc8fc1d73c519e1ff2baf756f3cb7652f4b796e166d66dfda31f7e50c58139
-DIST matplotlib-3.1.2.tar.gz 40909582 BLAKE2B 670907670335ca13ec01f3acf036fd502ce34abd12666b2e0d10867c6115a0fe80039326cee89099471aa6b3bbd25f1ca4aa837072dea624ee41984da9f647be SHA512 2eff3c0525d01824ed758a87f50a3f6094767b580fca1eae4e9dbc2cc972af3d0cc3ac9615e576c5685e8bfc1ec90754bc826635f4f2a919d0b26bbb686cccab
-DIST matplotlib-3.2.1.tar.gz 40325615 BLAKE2B 7fd299f7d3948987e341e4313ed82d15de286a05c9819893e099ccd6c1f861ce5548ec85588a382603011e7710d08d6fc9a4f168f0b5705b0873b97e40d2dd39 SHA512 d6497a3c47eaff9c0d981bc03de5894a3f4a5413cbe320924b1df6d68eb421e548cf4247c035fd636a4403cd2d50071633e6906e795b74ec7d9c4816193e42be
DIST matplotlib-3.2.2.tar.gz 40295831 BLAKE2B 32fb34b95d1df928f949fd7b04909da2494b56efbe543f75bffedf1d9d85a0089a50cd27b82a28ac75361b56fe3f2a6c95b7d9e777778ce46f1d2805e5dae9df SHA512 4b8080fddc717f311a87b6ef1a279304da2931ef2d6de85688c153f14da5009351f42d9533c44695ca43ce1496bb642927aca822a7946a2d50d40a7d25224b31
-EBUILD matplotlib-2.2.2-r1.ebuild 6227 BLAKE2B 32c5311bd4ee746cb0a6df097c9a2a2b34725031cbfcde1273b22929b20cf197597502be6722923ccade763e8a690dde0683f50fdaff313465b4bbfd6f5a52de SHA512 dc4c2387720aff34780d625022ee0a0f5806e4313e27cf1885450e6b2564f923d5a73b99534721c455d777bea2d43637a5b61d45b028aa5a22ee2ef2e5642b48
-EBUILD matplotlib-2.2.4.ebuild 6299 BLAKE2B a4513d93def3dd7fe01ef4e237a1ffa7e5e1d49ebb4a4fa04c4de14d02ac28bcb2017102d44002bfe4e0cdbca8e8a8563b862fafe3d06e01de4ac58d6c154619 SHA512 bd4a7941b7807552078f05c7bcce15dc18e8df1e93291c598a5d96d25a901556c69d31a7130406b7192903e5b1f81eca001af23675a03369c5fc42cfaa2110f1
-EBUILD matplotlib-3.1.2.ebuild 5647 BLAKE2B 7d6344c94f05cd4006a636fdf19dd68752c35459b01c85ee4bc8eea4a93851ac330491b9aae63c4b8c698ac7e329f579966d294143c9398058a154fc5ae9738d SHA512 3b9d297aa36cc0438d4f17e5fbee9d4a78525787cd19c3eb1a8ca1c3bf486ed899a0a427efbc11df40da3ea36de6bc149d51977aee04074be5d00b6ad144865a
-EBUILD matplotlib-3.2.1.ebuild 6534 BLAKE2B c537979c12904c6dc88f491b9e4266f1a23b26a044a00f9348c683c03afd2f6b9f6ce791b3b221772c267faef400c683dd6995b3ad42f90593797e1a311a7623 SHA512 c4d946e95769e97e40619cf6044edf27dd5a043bf2fd1cfc6b564b72d7f3eae380f426753687ee53fd545860c67cdf285d2c09698994803501908f6076a97eab
-EBUILD matplotlib-3.2.2.ebuild 6534 BLAKE2B 2b44325bbf66b1915654a045b0a1c539de9af2ac594b83b0fb2db139a59bf73d50f3e4fcfcf14e531821d4fd3b7e81d70bef94d13c7665c84e2231d097bed469 SHA512 b508b08c9843e6ffed20346363fbfb09bee7b88887160f9392dbcc12b3b4c8ad59232496cfec9a8f2b08fe0eba2f641317b34b04bf6be48fb376004aab7e0a95
+DIST matplotlib-3.3.0.tar.gz 38782487 BLAKE2B 97330d93b8d8a64a1296ccb173e44ebcc54c61e22aacdd73cc38a46fb2d22fbfe7334fb3c6993be001c475724c47f530243affddd71ec647232ac093db6e3135 SHA512 2ffd9e79e300a37092ab4b5a7156c2f57e408975818abd413c74477ad622030c7636695467aab821c9996564cddec57e26ba6a8004f6639070964fcb7a510a75
+DIST matplotlib-3.3.1.tar.gz 38780756 BLAKE2B b67388408da5ca6c36333705f0c19db6a1dc815819f01a5b0a7fe4ebd990f3e0df8def90971494e308ba8731f305db80dbe367f64c4fbf1294fd0f884cbb2d64 SHA512 cb3c61b7c96dde226f978980ebc960edc1329655efdeb974c8b6d8fd0cd3b660a8dfa3c98c1b140128b2ba13b134c81b000f6e87fa049d77512c81b1138b2b35
+EBUILD matplotlib-3.2.2-r1.ebuild 6529 BLAKE2B bd5d59fa18590dfa91a7ee9ec6c675489a4bd62ef9f4fbbca126854b148a5cfa453cf77bb68ba32058b69966fc36bc69c05929186a5510c2af48cb45b60617e3 SHA512 ce34651998a057438c85ed198dc0ac3bd461b789ce8a931020405c4a8456fd03f4b316fecb2ed53538ce70da3b3dbdca8ca67505b18b6341ba18fdb60a64ec42
+EBUILD matplotlib-3.3.0.ebuild 6652 BLAKE2B 617db8e27e957d351479da54926834320179f1d490cb55c91eaf5834607c6a69cd1b75f6db99cc5dbe77d45a1174d3a4157090ea4ae12268bc494dff401687e6 SHA512 d2f62cb2ce8a05963f4117623dcec047219210f8de9d81778cf990f3dcfa12046645f3b275bd53295a78641ca3f51ba84f6e81dfe9a799a69acea4db4a89377b
+EBUILD matplotlib-3.3.1-r1.ebuild 6719 BLAKE2B 31acd9a95a4f146040dddc8ad70821108c4ba6c0dcd356c786f741cbd7916e52023d2118fee68977ba5b4db1f66059755d40f2d7d3d6b3d29e938bed1eb8105d SHA512 5e70f4386a5371dc4e5543e5e43d2c0ad86dc35db6ea408dbf5d891fc6f51776b5ba8c9b40694b9650424a15d736b2de98dbf4e425f56e14ff6d1266e5a97b34
MISC metadata.xml 921 BLAKE2B 1ec6f51395f5b41747123b4b0104155defb7f881573259f57572e02ddcf986feecb9fc34bc93cbafa5498afb9549661e3491f72029487cf0eef55f2d756e7ea7 SHA512 cac60a2bdda5c3e9d3eef1a8250b09c8759294361994b8d5f4ec18389106b9aee610dc4c32634ab8e7c0c77ebe39513ce5b816002aaeb2f9037e665b46333f0b
diff --git a/dev-python/matplotlib/files/matplotlib-2.2.2-doc-make.patch b/dev-python/matplotlib/files/matplotlib-2.2.2-doc-make.patch
deleted file mode 100644
index 7ca0c6974234..000000000000
--- a/dev-python/matplotlib/files/matplotlib-2.2.2-doc-make.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff -r -U2 matplotlib-2.1.2.orig/doc/conf.py matplotlib-2.1.2/doc/conf.py
---- matplotlib-2.1.2.orig/doc/conf.py 2018-01-19 11:07:49.000000000 +0700
-+++ matplotlib-2.1.2/doc/conf.py 2018-01-21 20:06:44.120901546 +0700
-@@ -136,5 +136,5 @@
- }
-
--plot_gallery = 'True'
-+plot_gallery = True
-
- # Add any paths that contain templates here, relative to this directory.
diff --git a/dev-python/matplotlib/files/matplotlib-2.2.4-doc-fix.patch b/dev-python/matplotlib/files/matplotlib-2.2.4-doc-fix.patch
deleted file mode 100644
index b6a01b097a61..000000000000
--- a/dev-python/matplotlib/files/matplotlib-2.2.4-doc-fix.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/doc/conf.py b/doc/conf.py
-index 017ce210e..5a397082b 100644
---- a/doc/conf.py
-+++ b/doc/conf.py
-@@ -170,10 +170,10 @@ source_encoding = "utf-8"
- master_doc = 'contents'
-
- # General substitutions.
--from matplotlib.compat.subprocess import check_output
--SHA = check_output(['git', 'describe', '--dirty']).decode('utf-8').strip()
-+#from matplotlib.compat.subprocess import check_output
-+#SHA = check_output(['git', 'describe', '--dirty']).decode('utf-8').strip()
-
--html_context = {'sha': SHA}
-+#html_context = {'sha': SHA}
-
- project = 'Matplotlib'
- copyright = ('2002 - 2012 John Hunter, Darren Dale, Eric Firing, '
diff --git a/dev-python/matplotlib/files/matplotlib-2.2.4-no-jqueryui-download.patch b/dev-python/matplotlib/files/matplotlib-2.2.4-no-jqueryui-download.patch
deleted file mode 100644
index 9d13adb8ab53..000000000000
--- a/dev-python/matplotlib/files/matplotlib-2.2.4-no-jqueryui-download.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 41037e95d..6a438fa99 100644
---- a/setup.py
-+++ b/setup.py
-@@ -178,9 +178,10 @@ class sdist_with_jquery(_orgin_sdist):
- class install_lib_with_jquery(InstallLibCommand):
- def run(self):
- InstallLibCommand.run(self)
-- _download_jquery_to(
-- os.path.join(self.install_dir, "matplotlib/backends/web_backend/"))
--
-+ # Avoid downloading jquery ui during emerge: we already have it in
-+ # pypi's tarball. use this!
-+ name = "matplotlib/backends/web_backend/jquery-ui-1.12.1"
-+ os.rename(os.path.join('lib', name), os.path.join(self.install_dir, name))
-
- class develop_with_jquery(DevelopCommand):
- def run(self):
diff --git a/dev-python/matplotlib/files/matplotlib-3.1.2-no-jqueryui-download.patch b/dev-python/matplotlib/files/matplotlib-3.1.2-no-jqueryui-download.patch
deleted file mode 100644
index 145f321039b9..000000000000
--- a/dev-python/matplotlib/files/matplotlib-3.1.2-no-jqueryui-download.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: matplotlib-3.1.2/setup.py
-===================================================================
---- matplotlib-3.1.2.orig/setup.py
-+++ matplotlib-3.1.2/setup.py
-@@ -125,7 +125,9 @@ cmdclass['build_ext'] = BuildExtraLibrar
-
-
- def _download_jquery_to(dest):
-- if os.path.exists(os.path.join(dest, "jquery-ui-1.12.1")):
-+ # Avoid downloading jquery ui during emerge: we already have it in
-+ # pypi's tarball. use this!
-+ if True:
- return
-
- # If we are installing from an sdist, use the already downloaded jquery-ui
diff --git a/dev-python/matplotlib/files/matplotlib-3.2.1-test.patch b/dev-python/matplotlib/files/matplotlib-3.2.1-test.patch
deleted file mode 100644
index 281f15405c9b..000000000000
--- a/dev-python/matplotlib/files/matplotlib-3.2.1-test.patch
+++ /dev/null
@@ -1,432 +0,0 @@
-From 36e8d90d8065aa5fd1cd83554e6d2e7d031e5b3d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Sun, 7 Jun 2020 20:02:48 +0200
-Subject: [PATCH 1/2] Increase image comparison limits
-
-Most of the tests require exact match which apparently doesn't always
-happen in non-pristine environments. Some of them have very big
-differences due to texlive font rendering changes.
----
- lib/matplotlib/tests/test_arrow_patches.py | 4 ++--
- lib/matplotlib/tests/test_axes.py | 2 +-
- lib/matplotlib/tests/test_backend_pgf.py | 7 ++++---
- lib/matplotlib/tests/test_figure.py | 2 +-
- lib/matplotlib/tests/test_legend.py | 6 +++---
- lib/matplotlib/tests/test_pickle.py | 2 +-
- lib/matplotlib/tests/test_units.py | 4 ++--
- lib/matplotlib/tests/test_usetex.py | 2 +-
- lib/mpl_toolkits/tests/test_axes_grid1.py | 2 +-
- .../tests/test_axisartist_grid_helper_curvelinear.py | 2 +-
- 10 files changed, 17 insertions(+), 16 deletions(-)
-
-diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py
-index a9409e2c1..0e356e921 100644
---- a/lib/matplotlib/tests/test_arrow_patches.py
-+++ b/lib/matplotlib/tests/test_arrow_patches.py
-@@ -67,7 +67,7 @@ def __prepare_fancyarrow_dpi_cor_test():
-
-
- @image_comparison(['fancyarrow_dpi_cor_100dpi.png'], remove_text=True,
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
-+ tol={'aarch64': 0.02}.get(platform.machine(), 0.015),
- savefig_kwarg=dict(dpi=100))
- def test_fancyarrow_dpi_cor_100dpi():
- """
-@@ -82,7 +82,7 @@ def test_fancyarrow_dpi_cor_100dpi():
-
-
- @image_comparison(['fancyarrow_dpi_cor_200dpi.png'], remove_text=True,
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0),
-+ tol={'aarch64': 0.02}.get(platform.machine(), 0.018),
- savefig_kwarg=dict(dpi=200))
- def test_fancyarrow_dpi_cor_200dpi():
- """
-diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
-index 93548b279..9910e63c3 100644
---- a/lib/matplotlib/tests/test_axes.py
-+++ b/lib/matplotlib/tests/test_axes.py
-@@ -3653,7 +3653,7 @@ def test_vertex_markers():
-
-
- @image_comparison(['vline_hline_zorder', 'errorbar_zorder'],
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ tol={'aarch64': 0.02}.get(platform.machine(), 0.015))
- def test_eb_line_zorder():
- x = list(range(10))
-
-diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py
-index 7843b4101..ddb2991c1 100644
---- a/lib/matplotlib/tests/test_backend_pgf.py
-+++ b/lib/matplotlib/tests/test_backend_pgf.py
-@@ -97,7 +97,8 @@ def test_xelatex():
- # test compiling a figure to pdf with pdflatex
- @needs_pdflatex
- @pytest.mark.backend('pgf')
--@image_comparison(['pgf_pdflatex.pdf'], style='default')
-+@image_comparison(['pgf_pdflatex.pdf'], style='default',
-+ tol=11.669)
- def test_pdflatex():
- if os.environ.get('APPVEYOR', False):
- pytest.xfail("pdflatex test does not work on appveyor due to missing "
-@@ -133,7 +134,7 @@ def test_rcupdate():
- 'pgf.preamble': ['\\usepackage[utf8x]{inputenc}',
- '\\usepackage[T1]{fontenc}',
- '\\usepackage{sfmath}']}]
-- tol = [6, 0]
-+ tol = [6, 14]
- for i, rc_set in enumerate(rc_sets):
- with mpl.rc_context(rc_set):
- create_figure()
-@@ -161,7 +162,7 @@ def test_pathclip():
- @needs_xelatex
- @pytest.mark.backend('pgf')
- @image_comparison(['pgf_mixedmode.pdf'], style='default',
-- tol={'aarch64': 1.086}.get(platform.machine(), 0.0))
-+ tol=1.086)
- def test_mixedmode():
- rc_xelatex = {'font.family': 'serif',
- 'pgf.rcfonts': False}
-diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py
-index a9e8dfade..7e33bcb3b 100644
---- a/lib/matplotlib/tests/test_figure.py
-+++ b/lib/matplotlib/tests/test_figure.py
-@@ -14,7 +14,7 @@ import pytest
-
-
- @image_comparison(['figure_align_labels'],
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ tol=0.02)
- def test_align_labels():
- # Check the figure.align_labels() command
- fig = plt.figure(tight_layout=True)
-diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
-index 71499da44..a8bda6e84 100644
---- a/lib/matplotlib/tests/test_legend.py
-+++ b/lib/matplotlib/tests/test_legend.py
-@@ -106,7 +106,7 @@ def test_multiple_keys():
-
-
- @image_comparison(['rgba_alpha.png'], remove_text=True,
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ tol=0.02)
- def test_alpha_rgba():
- import matplotlib.pyplot as plt
-
-@@ -117,7 +117,7 @@ def test_alpha_rgba():
-
-
- @image_comparison(['rcparam_alpha.png'], remove_text=True,
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ tol=0.02)
- def test_alpha_rcparam():
- import matplotlib.pyplot as plt
-
-@@ -145,7 +145,7 @@ def test_fancy():
-
-
- @image_comparison(['framealpha'], remove_text=True,
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ tol=0.02)
- def test_framealpha():
- x = np.linspace(1, 100, 100)
- y = x
-diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py
-index 0fad3cdf2..4d2599607 100644
---- a/lib/matplotlib/tests/test_pickle.py
-+++ b/lib/matplotlib/tests/test_pickle.py
-@@ -41,7 +41,7 @@ def test_simple():
-
-
- @image_comparison(['multi_pickle.png'], remove_text=True, style='mpl20',
-- tol={'aarch64': 0.082}.get(platform.machine(), 0.0))
-+ tol=0.082)
- def test_complete():
- fig = plt.figure('Figure with a label?', figsize=(10, 6))
-
-diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py
-index f14425144..7f744da47 100644
---- a/lib/matplotlib/tests/test_units.py
-+++ b/lib/matplotlib/tests/test_units.py
-@@ -74,7 +74,7 @@ def quantity_converter():
- # Tests that the conversion machinery works properly for classes that
- # work as a facade over numpy arrays (like pint)
- @image_comparison(['plot_pint.png'], remove_text=False, style='mpl20',
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ tol={'aarch64': 0.02}.get(platform.machine(), 0.002))
- def test_numpy_facade(quantity_converter):
- # use former defaults to match existing baseline image
- plt.rcParams['axes.formatter.limits'] = -7, 7
-@@ -101,7 +101,7 @@ def test_numpy_facade(quantity_converter):
-
- # Tests gh-8908
- @image_comparison(['plot_masked_units.png'], remove_text=True, style='mpl20',
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ tol=0.02)
- def test_plot_masked_units():
- data = np.linspace(-5, 5)
- data_masked = np.ma.array(data, mask=(data > -2) & (data < 2))
-diff --git a/lib/matplotlib/tests/test_usetex.py b/lib/matplotlib/tests/test_usetex.py
-index 8d8cf29d0..4cdfe1aaf 100644
---- a/lib/matplotlib/tests/test_usetex.py
-+++ b/lib/matplotlib/tests/test_usetex.py
-@@ -16,7 +16,7 @@ def usetex():
-
- @image_comparison(baseline_images=['test_usetex'],
- extensions=['pdf', 'png'],
-- tol={'aarch64': 2.868}.get(platform.machine(), 0.3))
-+ tol=3)
- def test_usetex():
- fig = plt.figure()
- ax = fig.add_subplot(111)
-diff --git a/lib/mpl_toolkits/tests/test_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py
-index 9ed9a9280..56a3bd14a 100644
---- a/lib/mpl_toolkits/tests/test_axes_grid1.py
-+++ b/lib/mpl_toolkits/tests/test_axes_grid1.py
-@@ -343,7 +343,7 @@ def test_zooming_with_inverted_axes():
-
-
- @image_comparison(['anchored_direction_arrows.png'],
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ tol=0.02)
- def test_anchored_direction_arrows():
- fig, ax = plt.subplots()
- ax.imshow(np.zeros((10, 10)), interpolation='nearest')
-diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
-index 611908063..dc294aef5 100644
---- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
-+++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
-@@ -17,7 +17,7 @@ from mpl_toolkits.axisartist.grid_helper_curvelinear import \
-
-
- @image_comparison(['custom_transform.png'], style='default',
-- tol={'aarch64': 0.034}.get(platform.machine(), 0.03))
-+ tol=0.034)
- def test_custom_transform():
- class MyTransform(Transform):
- input_dims = 2
---
-2.27.0
-
-From c1d6cce894de12bd32095c73d15d4f4f6ff5f2bb Mon Sep 17 00:00:00 2001
-From: Antony Lee <anntzer.lee@gmail.com>
-Date: Tue, 10 Dec 2019 11:18:24 +0100
-Subject: [PATCH 2/2] Rewrite test_cycles to avoid image comparison tests.
-
-They can all be reasonably written by checking the artist properties.
----
- .../test_cycles/color_cycle_basic.png | Bin 33044 -> 0 bytes
- .../test_cycles/fill_cycle_basic.png | Bin 70692 -> 0 bytes
- .../test_cycles/fill_cycle_ignore.png | Bin 65439 -> 0 bytes
- .../test_cycles/lineprop_cycle_basic.png | Bin 41852 -> 0 bytes
- .../test_cycles/marker_cycle.png | Bin 44979 -> 0 bytes
- .../test_cycles/property_collision_fill.png | Bin 24923 -> 0 bytes
- .../test_cycles/property_collision_plot.png | Bin 37723 -> 0 bytes
- lib/matplotlib/tests/test_cycles.py | 141 +++++++-----------
- 8 files changed, 51 insertions(+), 90 deletions(-)
- delete mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/color_cycle_basic.png
- delete mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_basic.png
- delete mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/fill_cycle_ignore.png
- delete mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/lineprop_cycle_basic.png
- delete mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/marker_cycle.png
- delete mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/property_collision_fill.png
- delete mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/property_collision_plot.png
-
-diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py
-index ee67b4e41..a340b6166 100644
---- a/lib/matplotlib/tests/test_cycles.py
-+++ b/lib/matplotlib/tests/test_cycles.py
-@@ -1,6 +1,4 @@
--import platform
--
--from matplotlib.testing.decorators import image_comparison
-+import matplotlib as mpl
- import matplotlib.pyplot as plt
- import numpy as np
- import pytest
-@@ -8,133 +6,96 @@ import pytest
- from cycler import cycler
-
-
--@image_comparison(['color_cycle_basic.png'], remove_text=True,
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
- def test_colorcycle_basic():
- fig, ax = plt.subplots()
- ax.set_prop_cycle(cycler('color', ['r', 'g', 'y']))
-- xs = np.arange(10)
-- ys = 0.25 * xs + 2
-- ax.plot(xs, ys, label='red', lw=4)
-- ys = 0.45 * xs + 3
-- ax.plot(xs, ys, label='green', lw=4)
-- ys = 0.65 * xs + 4
-- ax.plot(xs, ys, label='yellow', lw=4)
-- ys = 0.85 * xs + 5
-- ax.plot(xs, ys, label='red2', lw=4)
-- ax.legend(loc='upper left')
--
--
--@image_comparison(['marker_cycle.png', 'marker_cycle.png'], remove_text=True,
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ for _ in range(4):
-+ ax.plot(range(10), range(10))
-+ assert [l.get_color() for l in ax.lines] == ['r', 'g', 'y', 'r']
-+
-+
- def test_marker_cycle():
- fig, ax = plt.subplots()
- ax.set_prop_cycle(cycler('c', ['r', 'g', 'y']) +
- cycler('marker', ['.', '*', 'x']))
-- xs = np.arange(10)
-- ys = 0.25 * xs + 2
-- ax.plot(xs, ys, label='red dot', lw=4, ms=16)
-- ys = 0.45 * xs + 3
-- ax.plot(xs, ys, label='green star', lw=4, ms=16)
-- ys = 0.65 * xs + 4
-- ax.plot(xs, ys, label='yellow x', lw=4, ms=16)
-- ys = 0.85 * xs + 5
-- ax.plot(xs, ys, label='red2 dot', lw=4, ms=16)
-- ax.legend(loc='upper left')
-+ for _ in range(4):
-+ ax.plot(range(10), range(10))
-+ assert [l.get_color() for l in ax.lines] == ['r', 'g', 'y', 'r']
-+ assert [l.get_marker() for l in ax.lines] == ['.', '*', 'x', '.']
-
-+
-+def test_marker_cycle_kwargs_arrays_iterators():
- fig, ax = plt.subplots()
-- # Test keyword arguments, numpy arrays, and generic iterators
- ax.set_prop_cycle(c=np.array(['r', 'g', 'y']),
- marker=iter(['.', '*', 'x']))
-- xs = np.arange(10)
-- ys = 0.25 * xs + 2
-- ax.plot(xs, ys, label='red dot', lw=4, ms=16)
-- ys = 0.45 * xs + 3
-- ax.plot(xs, ys, label='green star', lw=4, ms=16)
-- ys = 0.65 * xs + 4
-- ax.plot(xs, ys, label='yellow x', lw=4, ms=16)
-- ys = 0.85 * xs + 5
-- ax.plot(xs, ys, label='red2 dot', lw=4, ms=16)
-- ax.legend(loc='upper left')
--
--
--@image_comparison(['lineprop_cycle_basic.png'], remove_text=True,
-- tol={'aarch64': 0.02}.get(platform.machine(), 0.0))
-+ for _ in range(4):
-+ ax.plot(range(10), range(10))
-+ assert [l.get_color() for l in ax.lines] == ['r', 'g', 'y', 'r']
-+ assert [l.get_marker() for l in ax.lines] == ['.', '*', 'x', '.']
-+
-+
- def test_linestylecycle_basic():
- fig, ax = plt.subplots()
- ax.set_prop_cycle(cycler('ls', ['-', '--', ':']))
-- xs = np.arange(10)
-- ys = 0.25 * xs + 2
-- ax.plot(xs, ys, label='solid', lw=4, color='k')
-- ys = 0.45 * xs + 3
-- ax.plot(xs, ys, label='dashed', lw=4, color='k')
-- ys = 0.65 * xs + 4
-- ax.plot(xs, ys, label='dotted', lw=4, color='k')
-- ys = 0.85 * xs + 5
-- ax.plot(xs, ys, label='solid2', lw=4, color='k')
-- ax.legend(loc='upper left')
--
--
--@image_comparison(['fill_cycle_basic.png'], remove_text=True)
-+ for _ in range(4):
-+ ax.plot(range(10), range(10))
-+ assert [l.get_linestyle() for l in ax.lines] == ['-', '--', ':', '-']
-+
-+
- def test_fillcycle_basic():
- fig, ax = plt.subplots()
- ax.set_prop_cycle(cycler('c', ['r', 'g', 'y']) +
- cycler('hatch', ['xx', 'O', '|-']) +
- cycler('linestyle', ['-', '--', ':']))
-- xs = np.arange(10)
-- ys = 0.25 * xs**.5 + 2
-- ax.fill(xs, ys, label='red, xx', linewidth=3)
-- ys = 0.45 * xs**.5 + 3
-- ax.fill(xs, ys, label='green, circle', linewidth=3)
-- ys = 0.65 * xs**.5 + 4
-- ax.fill(xs, ys, label='yellow, cross', linewidth=3)
-- ys = 0.85 * xs**.5 + 5
-- ax.fill(xs, ys, label='red2, xx', linewidth=3)
-- ax.legend(loc='upper left')
--
--
--@image_comparison(['fill_cycle_ignore.png'], remove_text=True)
-+ for _ in range(4):
-+ ax.fill(range(10), range(10))
-+ assert ([p.get_facecolor() for p in ax.patches]
-+ == [mpl.colors.to_rgba(c) for c in ['r', 'g', 'y', 'r']])
-+ assert [p.get_hatch() for p in ax.patches] == ['xx', 'O', '|-', 'xx']
-+ assert [p.get_linestyle() for p in ax.patches] == ['-', '--', ':', '-']
-+
-+
- def test_fillcycle_ignore():
- fig, ax = plt.subplots()
- ax.set_prop_cycle(cycler('color', ['r', 'g', 'y']) +
- cycler('hatch', ['xx', 'O', '|-']) +
- cycler('marker', ['.', '*', 'D']))
-- xs = np.arange(10)
-- ys = 0.25 * xs**.5 + 2
-+ t = range(10)
- # Should not advance the cycler, even though there is an
- # unspecified property in the cycler "marker".
- # "marker" is not a Polygon property, and should be ignored.
-- ax.fill(xs, ys, 'r', hatch='xx', label='red, xx')
-- ys = 0.45 * xs**.5 + 3
-+ ax.fill(t, t, 'r', hatch='xx')
- # Allow the cycler to advance, but specify some properties
-- ax.fill(xs, ys, hatch='O', label='red, circle')
-- ys = 0.65 * xs**.5 + 4
-- ax.fill(xs, ys, label='green, circle')
-- ys = 0.85 * xs**.5 + 5
-- ax.fill(xs, ys, label='yellow, cross')
-- ax.legend(loc='upper left')
-+ ax.fill(t, t, hatch='O')
-+ ax.fill(t, t)
-+ ax.fill(t, t)
-+ assert ([p.get_facecolor() for p in ax.patches]
-+ == [mpl.colors.to_rgba(c) for c in ['r', 'r', 'g', 'y']])
-+ assert [p.get_hatch() for p in ax.patches] == ['xx', 'O', 'O', '|-']
-
-
--@image_comparison(['property_collision_plot.png'], remove_text=True)
- def test_property_collision_plot():
- fig, ax = plt.subplots()
- ax.set_prop_cycle('linewidth', [2, 4])
-+ t = range(10)
- for c in range(1, 4):
-- ax.plot(np.arange(10), c * np.arange(10), lw=0.1, color='k')
-- ax.plot(np.arange(10), 4 * np.arange(10), color='k')
-- ax.plot(np.arange(10), 5 * np.arange(10), color='k')
-+ ax.plot(t, t, lw=0.1)
-+ ax.plot(t, t)
-+ ax.plot(t, t)
-+ assert [l.get_linewidth() for l in ax.lines] == [0.1, 0.1, 0.1, 2, 4]
-
-
--@image_comparison(['property_collision_fill.png'], remove_text=True)
- def test_property_collision_fill():
- fig, ax = plt.subplots()
-- xs = np.arange(10)
-- ys = 0.25 * xs**.5 + 2
- ax.set_prop_cycle(linewidth=[2, 3, 4, 5, 6], facecolor='bgcmy')
-+ t = range(10)
- for c in range(1, 4):
-- ax.fill(xs, c * ys, lw=0.1)
-- ax.fill(xs, 4 * ys)
-- ax.fill(xs, 5 * ys)
-+ ax.fill(t, t, lw=0.1)
-+ ax.fill(t, t)
-+ ax.fill(t, t)
-+ assert ([p.get_facecolor() for p in ax.patches]
-+ == [mpl.colors.to_rgba(c) for c in 'bgcmy'])
-+ assert [p.get_linewidth() for p in ax.patches] == [0.1, 0.1, 0.1, 5, 6]
-
-
- def test_valid_input_forms():
---
-2.27.0
-
diff --git a/dev-python/matplotlib/files/matplotlib-3.3.0-test.patch b/dev-python/matplotlib/files/matplotlib-3.3.0-test.patch
new file mode 100644
index 000000000000..c7ce64b9b3b3
--- /dev/null
+++ b/dev-python/matplotlib/files/matplotlib-3.3.0-test.patch
@@ -0,0 +1,225 @@
+From 2fa4f25b9db19a1f59b03d56221c4752c03912fb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sun, 7 Jun 2020 20:02:48 +0200
+Subject: [PATCH] Increase image comparison limits
+
+Most of the tests require exact match which apparently doesn't always
+happen in non-pristine environments. Some of them have very big
+differences due to texlive font rendering changes.
+---
+ lib/matplotlib/tests/test_arrow_patches.py | 4 ++--
+ lib/matplotlib/tests/test_axes.py | 2 +-
+ lib/matplotlib/tests/test_backend_pgf.py | 8 +++++---
+ lib/matplotlib/tests/test_figure.py | 2 +-
+ lib/matplotlib/tests/test_legend.py | 6 +++---
+ lib/matplotlib/tests/test_pickle.py | 2 +-
+ lib/matplotlib/tests/test_units.py | 4 ++--
+ lib/matplotlib/tests/test_usetex.py | 3 ++-
+ lib/mpl_toolkits/tests/test_axes_grid1.py | 2 +-
+ .../tests/test_axisartist_grid_helper_curvelinear.py | 2 +-
+ lib/mpl_toolkits/tests/test_mplot3d.py | 2 +-
+ 11 files changed, 20 insertions(+), 17 deletions(-)
+
+diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py
+index cca505ab9..871935c15 100644
+--- a/lib/matplotlib/tests/test_arrow_patches.py
++++ b/lib/matplotlib/tests/test_arrow_patches.py
+@@ -67,7 +67,7 @@ def __prepare_fancyarrow_dpi_cor_test():
+
+
+ @image_comparison(['fancyarrow_dpi_cor_100dpi.png'], remove_text=True,
+- tol=0 if platform.machine() == 'x86_64' else 0.02,
++ tol=0.015 if platform.machine() == 'x86_64' else 0.02,
+ savefig_kwarg=dict(dpi=100))
+ def test_fancyarrow_dpi_cor_100dpi():
+ """
+@@ -82,7 +82,7 @@ def test_fancyarrow_dpi_cor_100dpi():
+
+
+ @image_comparison(['fancyarrow_dpi_cor_200dpi.png'], remove_text=True,
+- tol=0 if platform.machine() == 'x86_64' else 0.02,
++ tol=0.018 if platform.machine() == 'x86_64' else 0.02,
+ savefig_kwarg=dict(dpi=200))
+ def test_fancyarrow_dpi_cor_200dpi():
+ """
+diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
+index 6eedf20d5..198ed41ec 100644
+--- a/lib/matplotlib/tests/test_axes.py
++++ b/lib/matplotlib/tests/test_axes.py
+@@ -3718,7 +3718,7 @@ def test_vertex_markers():
+
+
+ @image_comparison(['vline_hline_zorder', 'errorbar_zorder'],
+- tol=0 if platform.machine() == 'x86_64' else 0.02)
++ tol=0.015 if platform.machine() == 'x86_64' else 0.02)
+ def test_eb_line_zorder():
+ x = list(range(10))
+
+diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py
+index 702cc6c35..71038e702 100644
+--- a/lib/matplotlib/tests/test_backend_pgf.py
++++ b/lib/matplotlib/tests/test_backend_pgf.py
+@@ -114,7 +114,8 @@ def test_xelatex():
+ # test compiling a figure to pdf with pdflatex
+ @needs_pdflatex
+ @pytest.mark.backend('pgf')
+-@image_comparison(['pgf_pdflatex.pdf'], style='default')
++@image_comparison(['pgf_pdflatex.pdf'], style='default',
++ tol=11.669)
+ def test_pdflatex():
+ if os.environ.get('APPVEYOR', False):
+ pytest.xfail("pdflatex test does not work on appveyor due to missing "
+@@ -151,7 +152,7 @@ def test_rcupdate():
+ 'pgf.preamble': ('\\usepackage[utf8x]{inputenc}'
+ '\\usepackage[T1]{fontenc}'
+ '\\usepackage{sfmath}')}]
+- tol = [6, 0]
++ tol = [6, 14]
+ for i, rc_set in enumerate(rc_sets):
+ with mpl.rc_context(rc_set):
+ create_figure()
+@@ -178,7 +179,8 @@ def test_pathclip():
+ # test mixed mode rendering
+ @needs_xelatex
+ @pytest.mark.backend('pgf')
+-@image_comparison(['pgf_mixedmode.pdf'], style='default')
++@image_comparison(['pgf_mixedmode.pdf'], style='default',
++ tol=1.086)
+ def test_mixedmode():
+ rc_xelatex = {'font.family': 'serif',
+ 'pgf.rcfonts': False}
+diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py
+index aab35201c..a657198f7 100644
+--- a/lib/matplotlib/tests/test_figure.py
++++ b/lib/matplotlib/tests/test_figure.py
+@@ -22,7 +22,7 @@ import pytest
+
+
+ @image_comparison(['figure_align_labels'],
+- tol=0 if platform.machine() == 'x86_64' else 0.01)
++ tol=0.02)
+ def test_align_labels():
+ fig = plt.figure(tight_layout=True)
+ gs = gridspec.GridSpec(3, 3)
+diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
+index 8e9c0771f..d1fb3818a 100644
+--- a/lib/matplotlib/tests/test_legend.py
++++ b/lib/matplotlib/tests/test_legend.py
+@@ -105,7 +105,7 @@ def test_multiple_keys():
+
+
+ @image_comparison(['rgba_alpha.png'], remove_text=True,
+- tol=0 if platform.machine() == 'x86_64' else 0.01)
++ tol=0.02)
+ def test_alpha_rgba():
+ fig, ax = plt.subplots(1, 1)
+ ax.plot(range(10), lw=5)
+@@ -114,7 +114,7 @@ def test_alpha_rgba():
+
+
+ @image_comparison(['rcparam_alpha.png'], remove_text=True,
+- tol=0 if platform.machine() == 'x86_64' else 0.01)
++ tol=0.02)
+ def test_alpha_rcparam():
+ fig, ax = plt.subplots(1, 1)
+ ax.plot(range(10), lw=5)
+@@ -140,7 +140,7 @@ def test_fancy():
+
+
+ @image_comparison(['framealpha'], remove_text=True,
+- tol=0 if platform.machine() == 'x86_64' else 0.02)
++ tol=0.02)
+ def test_framealpha():
+ x = np.linspace(1, 100, 100)
+ y = x
+diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py
+index 82bf4d8e8..13046357a 100644
+--- a/lib/matplotlib/tests/test_pickle.py
++++ b/lib/matplotlib/tests/test_pickle.py
+@@ -41,7 +41,7 @@ def test_simple():
+
+
+ @image_comparison(['multi_pickle.png'], remove_text=True, style='mpl20',
+- tol=0 if platform.machine() == 'x86_64' else 0.082)
++ tol=0.082)
+ def test_complete():
+ fig = plt.figure('Figure with a label?', figsize=(10, 6))
+
+diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py
+index 252136b4d..f0e7ced31 100644
+--- a/lib/matplotlib/tests/test_units.py
++++ b/lib/matplotlib/tests/test_units.py
+@@ -74,7 +74,7 @@ def quantity_converter():
+ # Tests that the conversion machinery works properly for classes that
+ # work as a facade over numpy arrays (like pint)
+ @image_comparison(['plot_pint.png'], remove_text=False, style='mpl20',
+- tol=0 if platform.machine() == 'x86_64' else 0.01)
++ tol=0.002 if platform.machine() == 'x86_64' else 0.01)
+ def test_numpy_facade(quantity_converter):
+ # use former defaults to match existing baseline image
+ plt.rcParams['axes.formatter.limits'] = -7, 7
+@@ -101,7 +101,7 @@ def test_numpy_facade(quantity_converter):
+
+ # Tests gh-8908
+ @image_comparison(['plot_masked_units.png'], remove_text=True, style='mpl20',
+- tol=0 if platform.machine() == 'x86_64' else 0.01)
++ tol=0.02)
+ def test_plot_masked_units():
+ data = np.linspace(-5, 5)
+ data_masked = np.ma.array(data, mask=(data > -2) & (data < 2))
+diff --git a/lib/matplotlib/tests/test_usetex.py b/lib/matplotlib/tests/test_usetex.py
+index 25006f174..694a510e7 100644
+--- a/lib/matplotlib/tests/test_usetex.py
++++ b/lib/matplotlib/tests/test_usetex.py
+@@ -13,7 +13,8 @@ if not mpl.checkdep_usetex(True):
+ @image_comparison(
+ baseline_images=['test_usetex'],
+ extensions=['pdf', 'png'],
+- style="mpl20")
++ style="mpl20",
++ tol=21)
+ def test_usetex():
+ mpl.rcParams['text.usetex'] = True
+ fig = plt.figure()
+diff --git a/lib/mpl_toolkits/tests/test_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py
+index 96830441e..c403b0bf2 100644
+--- a/lib/mpl_toolkits/tests/test_axes_grid1.py
++++ b/lib/mpl_toolkits/tests/test_axes_grid1.py
+@@ -331,7 +331,7 @@ def test_zooming_with_inverted_axes():
+
+
+ @image_comparison(['anchored_direction_arrows.png'],
+- tol=0 if platform.machine() == 'x86_64' else 0.01)
++ tol=0.02)
+ def test_anchored_direction_arrows():
+ fig, ax = plt.subplots()
+ ax.imshow(np.zeros((10, 10)), interpolation='nearest')
+diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
+index 05534869a..6e7053722 100644
+--- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
++++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py
+@@ -17,7 +17,7 @@ from mpl_toolkits.axisartist.grid_helper_curvelinear import \
+
+
+ @image_comparison(['custom_transform.png'], style='default',
+- tol=0.03 if platform.machine() == 'x86_64' else 0.034)
++ tol=0.034)
+ def test_custom_transform():
+ class MyTransform(Transform):
+ input_dims = output_dims = 2
+diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py
+index 37532335e..5a2645235 100644
+--- a/lib/mpl_toolkits/tests/test_mplot3d.py
++++ b/lib/mpl_toolkits/tests/test_mplot3d.py
+@@ -287,7 +287,7 @@ def test_marker_draw_order_view_rotated(fig_test, fig_ref):
+ ax.view_init(elev=0, azim=azim - 180) # view rotated by 180 degrees
+
+
+-@mpl3d_image_comparison(['plot_3d_from_2d.png'], tol=0.01)
++@mpl3d_image_comparison(['plot_3d_from_2d.png'], tol=0.012)
+ def test_plot_3d_from_2d():
+ fig = plt.figure()
+ ax = fig.add_subplot(111, projection='3d')
+--
+2.27.0
+
diff --git a/dev-python/matplotlib/matplotlib-2.2.2-r1.ebuild b/dev-python/matplotlib/matplotlib-2.2.2-r1.ebuild
deleted file mode 100644
index 9503034ec4c0..000000000000
--- a/dev-python/matplotlib/matplotlib-2.2.2-r1.ebuild
+++ /dev/null
@@ -1,250 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 python3_{6,7} )
-PYTHON_REQ_USE='tk?,threads(+)'
-
-inherit distutils-r1 flag-o-matic virtualx toolchain-funcs prefix
-
-DESCRIPTION="Pure python plotting library with matlab like syntax"
-HOMEPAGE="https://matplotlib.org/"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-SLOT="0"
-# Main license: matplotlib
-# Some modules: BSD
-# matplotlib/backends/qt4_editor: MIT
-# Fonts: BitstreamVera, OFL-1.1
-LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
-KEYWORDS="amd64 ~arm arm64 ~ppc ppc64 x86"
-IUSE="cairo doc excel examples gtk3 latex qt5 test tk wxwidgets"
-RESTRICT="!test? ( test )"
-
-PY2_FLAGS="|| ( $(python_gen_useflags python2_7) )"
-REQUIRED_USE="
- doc? ( ${PY2_FLAGS} )
- excel? ( ${PY2_FLAGS} )
- wxwidgets? ( ${PY2_FLAGS} )
- test? ( cairo gtk3 latex qt5 tk wxwidgets )"
-
-# #456704 -- a lot of py2-only deps
-PY2_USEDEP=$(python_gen_usedep python2_7)
-PY2_DEPEND="
- $(python_gen_cond_dep 'dev-python/functools32[${PYTHON_USEDEP}]' python2_7)
- $(python_gen_cond_dep 'dev-python/subprocess32[${PYTHON_USEDEP}]' python2_7)
- $(python_gen_cond_dep 'dev-python/backports-functools-lru-cache[${PYTHON_USEDEP}]' python2_7)"
-COMMON_DEPEND="
- dev-python/cycler[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.7.1[${PYTHON_USEDEP}]
- dev-python/python-dateutil:0[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- >=dev-python/six-1.10[${PYTHON_USEDEP}]
- media-fonts/stix-fonts
- media-libs/freetype:2
- media-libs/libpng:0
- >=media-libs/qhull-2013
- >=dev-python/kiwisolver-1.0.0[${PYTHON_USEDEP}]
- cairo? ( dev-python/cairocffi[${PYTHON_USEDEP}] )
- wxwidgets? ( >=dev-python/wxpython-2.8:*[${PY2_USEDEP}] )"
-
-# internal copy of pycxx highly patched
-# dev-python/pycxx
-
-DEPEND="${COMMON_DEPEND}
- ${PY2_DEPEND}
- dev-python/versioneer[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- virtual/pkgconfig
- doc? (
- app-text/dvipng
- dev-python/colorspacious[${PYTHON_USEDEP}]
- dev-python/pillow[${PYTHON_USEDEP}]
- dev-python/ipython[${PYTHON_USEDEP}]
- dev-python/mock[${PY2_USEDEP}]
- dev-python/numpydoc[${PYTHON_USEDEP}]
- sci-libs/scipy[${PYTHON_USEDEP}]
- >=dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/sphinx-gallery-0.1.12[${PYTHON_USEDEP}]
- dev-python/xlwt[${PYTHON_USEDEP}]
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-latexrecommended
- media-gfx/graphviz[cairo]
- )
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- >=dev-python/nose-0.11.1[${PYTHON_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- ${PY2_DEPEND}
- >=dev-python/pyparsing-1.5.6[${PYTHON_USEDEP}]
- excel? ( dev-python/xlwt[${PYTHON_USEDEP}] )
- gtk3? (
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- x11-libs/gtk+:3[introspection]
- )
- latex? (
- virtual/latex-base
- app-text/ghostscript-gpl
- app-text/dvipng
- app-text/poppler[utils]
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-xetex
- )
- qt5? ( dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}] )"
-
-# A few C++ source files are written to srcdir.
-# Other than that, the ebuild shall be fit for out-of-source build.
-DISTUTILS_IN_SOURCE_BUILD=1
-
-pkg_setup() {
- unset DISPLAY # bug #278524
-}
-
-use_setup() {
- local uword="${2:-${1}}"
- if use ${1}; then
- echo "${uword} = True"
- echo "${uword}agg = True"
- else
- echo "${uword} = False"
- echo "${uword}agg = False"
- fi
-}
-
-python_prepare_all() {
-# Generates test failures, but fedora does it
-# local PATCHES=(
-# "${FILESDIR}"/${P}-unbundle-pycxx.patch
-# "${FILESDIR}"/${P}-unbundle-agg.patch
-# )
-# rm -r agg24 CXX || die
-# rm -r agg24 || die
-
-# cat > lib/${PN}/externals/six.py <<-EOF
-# from __future__ import absolute_import
-# from six import *
-# EOF
-
- local PATCHES=( "${FILESDIR}"/${P}-doc-make.patch )
-
- sed \
- -e 's/matplotlib.pyparsing_py[23]/pyparsing/g' \
- -i lib/matplotlib/{mathtext,fontconfig_pattern}.py \
- || die "sed pyparsing failed"
-
- hprefixify setupext.py
-
- export XDG_RUNTIME_DIR="${T}/runtime-dir"
- mkdir "${XDG_RUNTIME_DIR}" || die
- chmod 0700 "${XDG_RUNTIME_DIR}" || die
-
- distutils-r1_python_prepare_all
-}
-
-python_configure_all() {
- append-flags -fno-strict-aliasing
- append-cppflags -DNDEBUG # or get old trying to do triangulation
- tc-export PKG_CONFIG
-}
-
-python_configure() {
- mkdir -p "${BUILD_DIR}" || die
-
- # create setup.cfg (see setup.cfg.template for any changes).
-
- # common switches.
- cat > "${BUILD_DIR}"/setup.cfg <<- EOF || die
- [directories]
- basedirlist = ${EPREFIX}/usr
- [provide_packages]
- pytz = False
- dateutil = False
- [packages]
- tests = $(usex test True False)
- [gui_support]
- agg = True
- pyside = False
- pysideagg = False
- qt4 = False
- qt4agg = False
- $(use_setup cairo)
- $(use_setup gtk3)
- $(use_setup qt5)
- $(use_setup tk)
- EOF
-
- if use gtk3 && use cairo; then
- echo "gtk3cairo = True" >> "${BUILD_DIR}"/setup.cfg || die
- else
- echo "gtk3cairo = False" >> "${BUILD_DIR}"/setup.cfg || die
- fi
-
- if python_is_python3; then
- cat >> "${BUILD_DIR}"/setup.cfg <<- EOF || die
- gtk = False
- gtkagg = False
- wx = False
- wxagg = False
- EOF
- else
- cat >> "${BUILD_DIR}"/setup.cfg <<-EOF || die
- gtk = False
- gtkagg = False
- $(use_setup wxwidgets wx)
- EOF
- fi
-}
-
-wrap_setup() {
- local -x MPLSETUPCFG=${BUILD_DIR}/setup.cfg
- unset DISPLAY
- "$@"
-}
-
-python_compile() {
- wrap_setup distutils-r1_python_compile --build-lib="${BUILD_DIR}"/lib
-}
-
-python_compile_all() {
- if use doc; then
- cd doc || die
-
- # necessary for in-source build
- local -x PYTHONPATH="${BUILD_DIR}"/build/lib:${PYTHONPATH}
-
- VARTEXFONTS="${T}"/fonts \
- emake SPHINXOPTS= O=-Dplot_formats=png:100 html
- fi
-}
-
-python_test() {
- wrap_setup distutils_install_for_testing
-
- virtx "${EPYTHON}" -c "import sys, matplotlib as m; sys.exit(0 if m.test(verbosity=2) else 1)"
-}
-
-python_install() {
- wrap_setup distutils-r1_python_install
-
- # mpl_toolkits namespace
- python_moduleinto mpl_toolkits
- python_domodule lib/mpl_toolkits/__init__.py
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( doc/build/html/. )
-
- distutils-r1_python_install_all
-
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-
- find "${D}" -name '*.pth' -delete || die
-}
diff --git a/dev-python/matplotlib/matplotlib-2.2.4.ebuild b/dev-python/matplotlib/matplotlib-2.2.4.ebuild
deleted file mode 100644
index 824ae05fff3f..000000000000
--- a/dev-python/matplotlib/matplotlib-2.2.4.ebuild
+++ /dev/null
@@ -1,253 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 python3_{6,7} )
-PYTHON_REQ_USE='tk?,threads(+)'
-
-inherit distutils-r1 flag-o-matic virtualx toolchain-funcs prefix
-
-DESCRIPTION="Pure python plotting library with matlab like syntax"
-HOMEPAGE="https://matplotlib.org/"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-SLOT="0"
-# Main license: matplotlib
-# Some modules: BSD
-# matplotlib/backends/qt4_editor: MIT
-# Fonts: BitstreamVera, OFL-1.1
-LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
-IUSE="cairo doc excel examples gtk3 latex qt5 test tk wxwidgets"
-RESTRICT="!test? ( test )"
-
-PY2_FLAGS="|| ( $(python_gen_useflags python2_7) )"
-REQUIRED_USE="
- wxwidgets? ( ${PY2_FLAGS} )
- test? ( cairo gtk3 latex qt5 tk wxwidgets )"
-
-# #456704 -- a lot of py2-only deps
-PY2_USEDEP=$(python_gen_usedep python2_7)
-PY2_DEPEND="
- $(python_gen_cond_dep 'dev-python/functools32[${PYTHON_USEDEP}]' python2_7)
- $(python_gen_cond_dep 'dev-python/subprocess32[${PYTHON_USEDEP}]' python2_7)
- $(python_gen_cond_dep 'dev-python/backports-functools-lru-cache[${PYTHON_USEDEP}]' python2_7)"
-COMMON_DEPEND="
- dev-python/cycler[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.7.1[${PYTHON_USEDEP}]
- dev-python/python-dateutil:0[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- >=dev-python/six-1.10[${PYTHON_USEDEP}]
- media-fonts/stix-fonts
- media-libs/freetype:2
- media-libs/libpng:0
- >=media-libs/qhull-2013
- >=dev-python/kiwisolver-1.0.0[${PYTHON_USEDEP}]
- cairo? ( dev-python/cairocffi[${PYTHON_USEDEP}] )
- wxwidgets? ( >=dev-python/wxpython-2.8:*[${PY2_USEDEP}] )"
-
-# internal copy of pycxx highly patched
-# dev-python/pycxx
-
-DEPEND="${COMMON_DEPEND}
- ${PY2_DEPEND}
- dev-python/versioneer[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- virtual/pkgconfig
- doc? (
- app-text/dvipng
- dev-python/colorspacious[${PYTHON_USEDEP}]
- dev-python/pillow[${PYTHON_USEDEP}]
- dev-python/ipython[${PYTHON_USEDEP}]
- dev-python/mock[${PY2_USEDEP}]
- >=dev-python/numpydoc-0.8[${PYTHON_USEDEP}]
- <dev-python/numpydoc-0.9
- sci-libs/scipy[${PYTHON_USEDEP}]
- >=dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/sphinx-gallery-0.3.1[${PYTHON_USEDEP}]
- dev-python/xlwt[${PYTHON_USEDEP}]
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-latexrecommended
- media-gfx/graphviz[cairo]
- )
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- >=dev-python/nose-0.11.1[${PYTHON_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- ${PY2_DEPEND}
- >=dev-python/pyparsing-1.5.6[${PYTHON_USEDEP}]
- excel? ( dev-python/xlwt[${PYTHON_USEDEP}] )
- gtk3? (
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- x11-libs/gtk+:3[introspection]
- )
- latex? (
- virtual/latex-base
- app-text/ghostscript-gpl
- app-text/dvipng
- app-text/poppler[utils]
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-xetex
- )
- qt5? ( dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}] )"
-
-# A few C++ source files are written to srcdir.
-# Other than that, the ebuild shall be fit for out-of-source build.
-DISTUTILS_IN_SOURCE_BUILD=1
-
-pkg_setup() {
- unset DISPLAY # bug #278524
-}
-
-use_setup() {
- local uword="${2:-${1}}"
- if use ${1}; then
- echo "${uword} = True"
- echo "${uword}agg = True"
- else
- echo "${uword} = False"
- echo "${uword}agg = False"
- fi
-}
-
-python_prepare_all() {
-# Generates test failures, but fedora does it
-# local PATCHES=(
-# "${FILESDIR}"/${P}-unbundle-pycxx.patch
-# "${FILESDIR}"/${P}-unbundle-agg.patch
-# )
-# rm -r agg24 CXX || die
-# rm -r agg24 || die
-
-# cat > lib/${PN}/externals/six.py <<-EOF
-# from __future__ import absolute_import
-# from six import *
-# EOF
-
- local PATCHES=(
- "${FILESDIR}"/${PN}-2.2.4-doc-fix.patch
- "${FILESDIR}"/${PN}-2.2.4-no-jqueryui-download.patch
- )
-
- sed \
- -e 's/matplotlib.pyparsing_py[23]/pyparsing/g' \
- -i lib/matplotlib/{mathtext,fontconfig_pattern}.py \
- || die "sed pyparsing failed"
-
- hprefixify setupext.py
-
- export XDG_RUNTIME_DIR="${T}/runtime-dir"
- mkdir "${XDG_RUNTIME_DIR}" || die
- chmod 0700 "${XDG_RUNTIME_DIR}" || die
-
- distutils-r1_python_prepare_all
-}
-
-python_configure_all() {
- append-flags -fno-strict-aliasing
- append-cppflags -DNDEBUG # or get old trying to do triangulation
- tc-export PKG_CONFIG
-}
-
-python_configure() {
- mkdir -p "${BUILD_DIR}" || die
-
- # create setup.cfg (see setup.cfg.template for any changes).
-
- # common switches.
- cat > "${BUILD_DIR}"/setup.cfg <<- EOF || die
- [directories]
- basedirlist = ${EPREFIX}/usr
- [provide_packages]
- pytz = False
- dateutil = False
- [packages]
- tests = $(usex test True False)
- [gui_support]
- agg = True
- pyside = False
- pysideagg = False
- qt4 = False
- qt4agg = False
- $(use_setup cairo)
- $(use_setup gtk3)
- $(use_setup qt5)
- $(use_setup tk)
- EOF
-
- if use gtk3 && use cairo; then
- echo "gtk3cairo = True" >> "${BUILD_DIR}"/setup.cfg || die
- else
- echo "gtk3cairo = False" >> "${BUILD_DIR}"/setup.cfg || die
- fi
-
- if python_is_python3; then
- cat >> "${BUILD_DIR}"/setup.cfg <<- EOF || die
- gtk = False
- gtkagg = False
- wx = False
- wxagg = False
- EOF
- else
- cat >> "${BUILD_DIR}"/setup.cfg <<-EOF || die
- gtk = False
- gtkagg = False
- $(use_setup wxwidgets wx)
- EOF
- fi
-}
-
-wrap_setup() {
- local MAKEOPTS=-j1
- local -x MPLSETUPCFG="${BUILD_DIR}"/setup.cfg
- unset DISPLAY
- "$@"
-}
-
-python_compile() {
- wrap_setup distutils-r1_python_compile --build-lib="${BUILD_DIR}"/lib
-}
-
-python_compile_all() {
- if use doc; then
- cd doc || die
-
- # necessary for in-source build
- local -x PYTHONPATH="${BUILD_DIR}"/build/lib:${PYTHONPATH}
-
- VARTEXFONTS="${T}"/fonts \
- emake SPHINXOPTS= O=-Dplot_formats=png:100 html
- fi
-}
-
-python_test() {
- wrap_setup distutils_install_for_testing
-
- virtx "${EPYTHON}" -c "import sys, matplotlib as m; sys.exit(0 if m.test(verbosity=2) else 1)"
-}
-
-python_install() {
- wrap_setup distutils-r1_python_install
-
- # mpl_toolkits namespace
- python_moduleinto mpl_toolkits
- python_domodule lib/mpl_toolkits/__init__.py
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( doc/build/html/. )
-
- distutils-r1_python_install_all
-
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-
- find "${D}" -name '*.pth' -delete || die
-}
diff --git a/dev-python/matplotlib/matplotlib-3.2.2.ebuild b/dev-python/matplotlib/matplotlib-3.2.2-r1.ebuild
index 59b723084553..a653f14fcd90 100644
--- a/dev-python/matplotlib/matplotlib-3.2.2.ebuild
+++ b/dev-python/matplotlib/matplotlib-3.2.2-r1.ebuild
@@ -23,7 +23,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
# Fonts: BitstreamVera, OFL-1.1
LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc ppc64 x86"
IUSE="cairo doc excel examples gtk3 latex qt5 tk wxwidgets"
# internal copy of pycxx highly patched
@@ -32,6 +32,7 @@ RDEPEND="
>=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
>=dev-python/kiwisolver-1.2.0[${PYTHON_USEDEP}]
>=dev-python/numpy-1.18.2[${PYTHON_USEDEP}]
+ >=dev-python/pillow-7.1.1[${PYTHON_USEDEP}]
>=dev-python/pyparsing-1.5.6[${PYTHON_USEDEP}]
dev-python/python-dateutil:0[${PYTHON_USEDEP}]
>=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
@@ -78,7 +79,6 @@ BDEPEND="
doc? (
>=app-text/dvipng-1.15-r1
>=dev-python/colorspacious-1.1.2[${PYTHON_USEDEP}]
- >=dev-python/pillow-7.1.1[${PYTHON_USEDEP}]
>=dev-python/ipython-1.18.2[${PYTHON_USEDEP}]
>=dev-python/numpydoc-0.9.2[${PYTHON_USEDEP}]
>=sci-libs/scipy-1.4.1[${PYTHON_USEDEP}]
diff --git a/dev-python/matplotlib/matplotlib-3.2.1.ebuild b/dev-python/matplotlib/matplotlib-3.3.0.ebuild
index 5f616ebccb19..0ff607bcd6dc 100644
--- a/dev-python/matplotlib/matplotlib-3.2.1.ebuild
+++ b/dev-python/matplotlib/matplotlib-3.3.0.ebuild
@@ -23,7 +23,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
# Fonts: BitstreamVera, OFL-1.1
LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="~amd64 ~arm arm64 ~ppc ~ppc64 ~x86"
IUSE="cairo doc excel examples gtk3 latex qt5 tk wxwidgets"
# internal copy of pycxx highly patched
@@ -32,6 +32,7 @@ RDEPEND="
>=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
>=dev-python/kiwisolver-1.2.0[${PYTHON_USEDEP}]
>=dev-python/numpy-1.18.2[${PYTHON_USEDEP}]
+ >=dev-python/pillow-7.1.1[${PYTHON_USEDEP}]
>=dev-python/pyparsing-1.5.6[${PYTHON_USEDEP}]
dev-python/python-dateutil:0[${PYTHON_USEDEP}]
>=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
@@ -78,7 +79,6 @@ BDEPEND="
doc? (
>=app-text/dvipng-1.15-r1
>=dev-python/colorspacious-1.1.2[${PYTHON_USEDEP}]
- >=dev-python/pillow-7.1.1[${PYTHON_USEDEP}]
>=dev-python/ipython-1.18.2[${PYTHON_USEDEP}]
>=dev-python/numpydoc-0.9.2[${PYTHON_USEDEP}]
>=sci-libs/scipy-1.4.1[${PYTHON_USEDEP}]
@@ -144,8 +144,7 @@ python_prepare_all() {
# EOF
local PATCHES=(
- "${FILESDIR}"/matplotlib-3.1.2-qhull.patch
- "${FILESDIR}"/matplotlib-3.2.1-test.patch
+ "${FILESDIR}"/matplotlib-3.3.0-test.patch
)
# requires jupyter-nbconvert
@@ -188,6 +187,9 @@ python_configure() {
[provide_packages]
pytz = False
dateutil = False
+ [libs]
+ system_freetype = True
+ system_qhull = True
[packages]
tests = $(usex test True False)
[gui_support]
@@ -241,9 +243,11 @@ src_test() {
python_test() {
# we need to rebuild mpl against bundled freetype, otherwise
# over 1000 tests will fail because of mismatched font rendering
- local -x MPLLOCALFREETYPE=1
+ grep -v system_freetype "${BUILD_DIR}"/setup.cfg \
+ > "${BUILD_DIR}"/test-setup.cfg || die
+ local -x MPLSETUPCFG="${BUILD_DIR}"/test-setup.cfg
ln -s "${WORKDIR}/freetype-${FT_PV}" "${BUILD_DIR}" || die
- wrap_setup distutils-r1_python_compile --build-lib="${BUILD_DIR}"/test-lib
+ distutils-r1_python_compile -j1 --build-lib="${BUILD_DIR}"/test-lib
local -x PYTHONPATH=${BUILD_DIR}/test-lib:${PYTHONPATH}
"${EPYTHON}" -c "import sys, matplotlib as m; sys.exit(m.test(verbosity=2))" || die
diff --git a/dev-python/matplotlib/matplotlib-3.1.2.ebuild b/dev-python/matplotlib/matplotlib-3.3.1-r1.ebuild
index eb1517ece9d8..981026cbe93b 100644
--- a/dev-python/matplotlib/matplotlib-3.1.2.ebuild
+++ b/dev-python/matplotlib/matplotlib-3.3.1-r1.ebuild
@@ -3,14 +3,19 @@
EAPI=7
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6..9} )
PYTHON_REQ_USE='tk?,threads(+)'
+DISTUTILS_USE_SETUPTOOLS=bdepend
inherit distutils-r1 flag-o-matic virtualx toolchain-funcs prefix
+FT_PV=2.6.1
DESCRIPTION="Pure python plotting library with matlab like syntax"
HOMEPAGE="https://matplotlib.org/"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ test? (
+ https://downloads.sourceforge.net/project/freetype/freetype2/${FT_PV}/freetype-${FT_PV}.tar.gz
+ )"
# Main license: matplotlib
# Some modules: BSD
@@ -18,81 +23,105 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
# Fonts: BitstreamVera, OFL-1.1
LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~x86"
-IUSE="cairo doc excel examples gtk3 latex qt5 test tk wxwidgets"
-REQUIRED_USE="test? ( cairo gtk3 latex qt5 tk )"
-# tests are fixed in 3.2.1, this version is beyond repair
-RESTRICT="test"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+IUSE="cairo doc excel examples gtk3 latex qt5 tk wxwidgets"
# internal copy of pycxx highly patched
# dev-python/pycxx
-COMMON_DEPEND="
- dev-python/cycler[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.7.1[${PYTHON_USEDEP}]
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ >=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/kiwisolver-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.18.2[${PYTHON_USEDEP}]
+ >=dev-python/pillow-7.1.1[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-1.5.6[${PYTHON_USEDEP}]
dev-python/python-dateutil:0[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- >=dev-python/six-1.10[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ >=dev-python/six-1.14.0[${PYTHON_USEDEP}]
+ dev-python/versioneer[${PYTHON_USEDEP}]
+ media-fonts/dejavu
media-fonts/stix-fonts
media-libs/freetype:2
media-libs/libpng:0
>=media-libs/qhull-2013
- >=dev-python/kiwisolver-1.0.0[${PYTHON_USEDEP}]
- cairo? ( dev-python/cairocffi[${PYTHON_USEDEP}] )
- wxwidgets? ( dev-python/wxpython:*[${PYTHON_USEDEP}] )"
-
-DEPEND="${COMMON_DEPEND}
- dev-python/versioneer[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- virtual/pkgconfig
- doc? (
- app-text/dvipng
- dev-python/colorspacious[${PYTHON_USEDEP}]
- dev-python/pillow[${PYTHON_USEDEP}]
- dev-python/ipython[${PYTHON_USEDEP}]
- >=dev-python/numpydoc-0.8[${PYTHON_USEDEP}]
- <dev-python/numpydoc-0.9
- sci-libs/scipy[${PYTHON_USEDEP}]
- >=dev-python/sphinx-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/sphinx-gallery-0.3.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-6.0.4[${PYTHON_USEDEP}]
+ cairo? (
+ dev-python/cairocffi[${PYTHON_USEDEP}]
+ )
+ excel? (
dev-python/xlwt[${PYTHON_USEDEP}]
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-latexrecommended
- media-gfx/graphviz[cairo]
)
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- >=dev-python/nose-0.11.1[${PYTHON_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- >=dev-python/pyparsing-1.5.6[${PYTHON_USEDEP}]
- excel? ( dev-python/xlwt[${PYTHON_USEDEP}] )
gtk3? (
dev-python/pygobject:3[cairo?,${PYTHON_USEDEP}]
- x11-libs/gtk+:3[introspection] )
+ x11-libs/gtk+:3[introspection]
+ )
latex? (
virtual/latex-base
- app-text/ghostscript-gpl
app-text/dvipng
+ app-text/ghostscript-gpl
app-text/poppler[utils]
dev-texlive/texlive-fontsrecommended
dev-texlive/texlive-latexextra
dev-texlive/texlive-xetex
)
- qt5? ( dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}] )"
+ qt5? (
+ dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
+ )
+ wxwidgets? (
+ $(python_gen_cond_dep '
+ dev-python/wxpython:*[${PYTHON_USEDEP}]
+ ' python3_{6,7,8})
+ )
+"
+
+BDEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ >=app-text/dvipng-1.15-r1
+ >=dev-python/colorspacious-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/ipython-1.18.2[${PYTHON_USEDEP}]
+ >=dev-python/numpydoc-0.9.2[${PYTHON_USEDEP}]
+ >=sci-libs/scipy-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-gallery-0.3.1-r1[${PYTHON_USEDEP}]
+ >=dev-python/xlwt-1.3.0-r1[${PYTHON_USEDEP}]
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexrecommended
+ >=media-gfx/graphviz-2.42.3[cairo]
+ )
+ test? (
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+"
# A few C++ source files are written to srcdir.
# Other than that, the ebuild shall be fit for out-of-source build.
DISTUTILS_IN_SOURCE_BUILD=1
+distutils_enable_tests pytest
+
pkg_setup() {
unset DISPLAY # bug #278524
}
+use_supported() {
+ case ${1} in
+ wxwidgets)
+ [[ ${EPYTHON} == python3.[678] ]]
+ ;;
+ esac
+
+ return 0
+}
+
use_setup() {
local uword="${2:-${1}}"
- if use ${1}; then
+ if use_supported "${1}" && use "${1}"; then
echo "${uword} = True"
echo "${uword}agg = True"
else
@@ -116,15 +145,20 @@ python_prepare_all() {
# EOF
local PATCHES=(
- "${FILESDIR}"/${PN}-3.1.2-no-jqueryui-download.patch
- "${FILESDIR}"/${PN}-3.1.2-qhull.patch
+ "${FILESDIR}"/matplotlib-3.3.0-test.patch
)
+ # requires jupyter-nbconvert
+ rm lib/matplotlib/tests/test_backend_nbagg.py || die
+
sed \
-e 's/matplotlib.pyparsing_py[23]/pyparsing/g' \
-i lib/matplotlib/{mathtext,fontconfig_pattern}.py \
|| die "sed pyparsing failed"
+ sed -e 's:\(@pytest.mark.flaky\)(reruns=3):\1:' \
+ -i lib/matplotlib/tests/test_*.py || die
+
hprefixify setupext.py
rm -rf libqhull || die
@@ -154,6 +188,9 @@ python_configure() {
[provide_packages]
pytz = False
dateutil = False
+ [libs]
+ system_freetype = True
+ system_qhull = True
[packages]
tests = $(usex test True False)
[gui_support]
@@ -181,7 +218,6 @@ python_configure() {
wrap_setup() {
local MAKEOPTS=-j1
local -x MPLSETUPCFG="${BUILD_DIR}"/setup.cfg
- unset DISPLAY
"$@"
}
@@ -201,10 +237,21 @@ python_compile_all() {
fi
}
-python_test() {
- wrap_setup distutils_install_for_testing
+src_test() {
+ virtx distutils-r1_src_test
+}
- virtx "${EPYTHON}" -c "import sys, matplotlib as m; sys.exit(0 if m.test(verbosity=2) else 1)"
+python_test() {
+ # we need to rebuild mpl against bundled freetype, otherwise
+ # over 1000 tests will fail because of mismatched font rendering
+ grep -v system_freetype "${BUILD_DIR}"/setup.cfg \
+ > "${BUILD_DIR}"/test-setup.cfg || die
+ local -x MPLSETUPCFG="${BUILD_DIR}"/test-setup.cfg
+ ln -s "${WORKDIR}/freetype-${FT_PV}" "${BUILD_DIR}" || die
+ distutils-r1_python_compile -j1 --build-lib="${BUILD_DIR}"/test-lib
+ local -x PYTHONPATH=${BUILD_DIR}/test-lib:${PYTHONPATH}
+
+ "${EPYTHON}" -c "import sys, matplotlib as m; sys.exit(m.test(argv=['-m', 'not network'], verbosity=2))" || die
}
python_install() {