[PATCH] gnu: python-seaborn: Update to 0.12.0.

  • Done
  • quality assurance status badge
Details
2 participants
  • Arun Isaac
  • Christopher Baines
Owner
unassigned
Submitted by
Arun Isaac
Severity
normal
A
A
Arun Isaac wrote on 12 Oct 2022 14:21
(address . guix-patches@gnu.org)(name . Arun Isaac)(address . arunisaac@systemreboot.net)
20221012122154.12160-1-arunisaac@systemreboot.net
* gnu/packages/python-xyz.scm (python-seaborn): Update to 0.12.0.
[source]: Remove patches.
[arguments]: Import (ice-9 match) module. Remove patch-more-tests and
start-xserver phases. Replace build and install phases. Fix pytest command in
check phase.
[native-inputs]: Add python-flit-core and python-pypa-build. Remove
xorg-server-for-tests.
* gnu/packages/patches/python-seaborn-2690.patch,
gnu/packages/patches/python-seaborn-kde-test.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Unregister them.
---
gnu/local.mk | 2 -
.../patches/python-seaborn-2690.patch | 268 ------------------
.../patches/python-seaborn-kde-test.patch | 36 ---
gnu/packages/python-xyz.scm | 46 ++-
4 files changed, 21 insertions(+), 331 deletions(-)
delete mode 100644 gnu/packages/patches/python-seaborn-2690.patch
delete mode 100644 gnu/packages/patches/python-seaborn-kde-test.patch

Toggle diff (397 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 195bbcc40a..bd3eb1d4f0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1745,8 +1745,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-robotframework-atest.patch \
%D%/packages/patches/python-robotframework-source-date-epoch.patch \
%D%/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch \
- %D%/packages/patches/python-seaborn-kde-test.patch \
- %D%/packages/patches/python-seaborn-2690.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.patch \
%D%/packages/patches/python-versioneer-guix-support.patch \
diff --git a/gnu/packages/patches/python-seaborn-2690.patch b/gnu/packages/patches/python-seaborn-2690.patch
deleted file mode 100644
index 4662d19c2d..0000000000
--- a/gnu/packages/patches/python-seaborn-2690.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-This patch was adapted from the upstream pull request 2690.
-
-From ebd6812d48f5b8ed1ebb7d79bda0b2a7b9ae2812 Mon Sep 17 00:00:00 2001
-From: Michael Waskom <mwaskom@gmail.com>
-Date: Sun, 31 Oct 2021 15:09:27 -0400
-Subject: [PATCH 1/4] Update boxplot tests for mpl3.5 compatability
-
----
- seaborn/tests/test_categorical.py | 30 +++++++++++++++++++-----------
- 1 file changed, 19 insertions(+), 11 deletions(-)
-
-diff --git a/seaborn/tests/test_categorical.py b/seaborn/tests/test_categorical.py
-index d4e09b703..488fad2d6 100644
---- a/seaborn/tests/test_categorical.py
-+++ b/seaborn/tests/test_categorical.py
-@@ -110,6 +110,11 @@ class CategoricalFixture:
- df = pd.DataFrame(dict(y=y, g=g, h=h, u=u))
- x_df["W"] = g
-
-+ def get_box_artists(self, ax):
-+
-+ # Exclude labeled patches, which are for the legend
-+ return [p for p in ax.patches if not p.get_label()]
-+
-
- class TestCategoricalPlotter(CategoricalFixture):
-
-@@ -855,12 +863,12 @@ def test_hue_offsets(self):
- def test_axes_data(self):
-
- ax = cat.boxplot(x="g", y="y", data=self.df)
-- assert len(ax.artists) == 3
-+ assert len(self.get_box_artists(ax)) == 3
-
- plt.close("all")
-
- ax = cat.boxplot(x="g", y="y", hue="h", data=self.df)
-- assert len(ax.artists) == 6
-+ assert len(self.get_box_artists(ax)) == 6
-
- plt.close("all")
-
-@@ -868,14 +876,14 @@ def test_box_colors(self):
-
- ax = cat.boxplot(x="g", y="y", data=self.df, saturation=1)
- pal = palettes.color_palette(n_colors=3)
-- for patch, color in zip(ax.artists, pal):
-+ for patch, color in zip(self.get_box_artists(ax), pal):
- assert patch.get_facecolor()[:3] == color
-
- plt.close("all")
-
- ax = cat.boxplot(x="g", y="y", hue="h", data=self.df, saturation=1)
- pal = palettes.color_palette(n_colors=2)
-- for patch, color in zip(ax.artists, pal * 2):
-+ for patch, color in zip(self.get_box_artists(ax), pal * 2):
- assert patch.get_facecolor()[:3] == color
-
- plt.close("all")
-@@ -884,7 +892,7 @@ def test_draw_missing_boxes(self):
-
- ax = cat.boxplot(x="g", y="y", data=self.df,
- order=["a", "b", "c", "d"])
-- assert len(ax.artists) == 3
-+ assert len(self.get_box_artists(ax)) == 3
-
- def test_missing_data(self):
-
-@@ -894,13 +902,13 @@ def test_missing_data(self):
- y[-2:] = np.nan
-
- ax = cat.boxplot(x=x, y=y)
-- assert len(ax.artists) == 3
-+ assert len(self.get_box_artists(ax)) == 3
-
- plt.close("all")
-
- y[-1] = 0
- ax = cat.boxplot(x=x, y=y, hue=h)
-- assert len(ax.artists) == 7
-+ assert len(self.get_box_artists(ax)) == 7
-
- plt.close("all")
-
-@@ -2766,11 +2774,11 @@ def test_plot_elements(self):
-
- g = cat.catplot(x="g", y="y", data=self.df, kind="box")
- want_artists = self.g.unique().size
-- assert len(g.ax.artists) == want_artists
-+ assert len(self.get_box_artists(g.ax)) == want_artists
-
- g = cat.catplot(x="g", y="y", hue="h", data=self.df, kind="box")
- want_artists = self.g.unique().size * self.h.unique().size
-- assert len(g.ax.artists) == want_artists
-+ assert len(self.get_box_artists(g.ax)) == want_artists
-
- g = cat.catplot(x="g", y="y", data=self.df,
- kind="violin", inner=None)
-@@ -3137,14 +3145,14 @@ def test_box_colors(self):
-
- ax = cat.boxenplot(x="g", y="y", data=self.df, saturation=1)
- pal = palettes.color_palette(n_colors=3)
-- for patch, color in zip(ax.artists, pal):
-+ for patch, color in zip(self.get_box_artists(ax), pal):
- assert patch.get_facecolor()[:3] == color
-
- plt.close("all")
-
- ax = cat.boxenplot(x="g", y="y", hue="h", data=self.df, saturation=1)
- pal = palettes.color_palette(n_colors=2)
-- for patch, color in zip(ax.artists, pal * 2):
-+ for patch, color in zip(self.get_box_artists(ax), pal * 2):
- assert patch.get_facecolor()[:3] == color
-
- plt.close("all")
-
-From ff78ed38817a346e760194ab3b03b28d7ea3ba1b Mon Sep 17 00:00:00 2001
-From: Michael Waskom <mwaskom@gmail.com>
-Date: Sun, 31 Oct 2021 15:50:54 -0400
-Subject: [PATCH 2/4] Update kdeplot tests for mpl3.5 compatability
-
----
- seaborn/tests/test_distributions.py | 53 ++++++++++++++++++++---------
- 1 file changed, 37 insertions(+), 16 deletions(-)
-
-diff --git a/seaborn/tests/test_distributions.py b/seaborn/tests/test_distributions.py
-index d241fd978..466efb69e 100644
---- a/seaborn/tests/test_distributions.py
-+++ b/seaborn/tests/test_distributions.py
-@@ -39,6 +39,27 @@
- )
-
-
-+def get_contour_coords(c):
-+ """Provide compatability for change in contour artist type in mpl3.5."""
-+ # See https://github.com/matplotlib/matplotlib/issues/20906
-+ if isinstance(c, mpl.collections.LineCollection):
-+ return c.get_segments()
-+ elif isinstance(c, mpl.collections.PathCollection):
-+ return [p.vertices[:np.argmax(p.codes) + 1] for p in c.get_paths()]
-+
-+
-+def get_contour_color(c):
-+ """Provide compatability for change in contour artist type in mpl3.5."""
-+ # See https://github.com/matplotlib/matplotlib/issues/20906
-+ if isinstance(c, mpl.collections.LineCollection):
-+ return c.get_color()
-+ elif isinstance(c, mpl.collections.PathCollection):
-+ if c.get_facecolor().size:
-+ return c.get_facecolor()
-+ else:
-+ return c.get_edgecolor()
-+
-+
- class TestDistPlot(object):
-
- rs = np.random.RandomState(0)
-@@ -902,7 +923,7 @@ def test_fill_artists(self, long_df):
- f, ax = plt.subplots()
- kdeplot(data=long_df, x="x", y="y", hue="c", fill=fill)
- for c in ax.collections:
-- if fill:
-+ if fill or Version(mpl.__version__) >= Version("3.5.0b0"):
- assert isinstance(c, mpl.collections.PathCollection)
- else:
- assert isinstance(c, mpl.collections.LineCollection)
-@@ -918,8 +939,8 @@ def test_common_norm(self, rng):
- kdeplot(x=x, y=y, hue=hue, common_norm=True, ax=ax1)
- kdeplot(x=x, y=y, hue=hue, common_norm=False, ax=ax2)
-
-- n_seg_1 = sum([len(c.get_segments()) > 0 for c in ax1.collections])
-- n_seg_2 = sum([len(c.get_segments()) > 0 for c in ax2.collections])
-+ n_seg_1 = sum([len(get_contour_coords(c)) > 0 for c in ax1.collections])
-+ n_seg_2 = sum([len(get_contour_coords(c)) > 0 for c in ax2.collections])
- assert n_seg_2 > n_seg_1
-
- def test_log_scale(self, rng):
-@@ -946,7 +967,7 @@ def test_log_scale(self, rng):
- ax2.contour(10 ** xx, yy, density, levels=levels)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- assert_array_equal(c1.get_segments(), c2.get_segments())
-+ assert_array_equal(get_contour_coords(c1), get_contour_coords(c2))
-
- def test_bandwidth(self, rng):
-
-@@ -959,7 +980,7 @@ def test_bandwidth(self, rng):
- kdeplot(x=x, y=y, bw_adjust=2, ax=ax2)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- seg1, seg2 = c1.get_segments(), c2.get_segments()
-+ seg1, seg2 = get_contour_coords(c1), get_contour_coords(c2)
- if seg1 + seg2:
- x1 = seg1[0][:, 0]
- x2 = seg2[0][:, 0]
-@@ -980,9 +1001,9 @@ def test_weights(self, rng):
- kdeplot(x=x, y=y, hue=hue, weights=weights, ax=ax2)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- if c1.get_segments() and c2.get_segments():
-- seg1 = np.concatenate(c1.get_segments(), axis=0)
-- seg2 = np.concatenate(c2.get_segments(), axis=0)
-+ if get_contour_coords(c1) and get_contour_coords(c2):
-+ seg1 = np.concatenate(get_contour_coords(c1), axis=0)
-+ seg2 = np.concatenate(get_contour_coords(c2), axis=0)
- assert not np.array_equal(seg1, seg2)
-
- def test_hue_ignores_cmap(self, long_df):
-@@ -1030,7 +1051,7 @@ def test_levels_and_thresh(self, long_df):
- kdeplot(**plot_kws, levels=np.linspace(thresh, 1, n), ax=ax2)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- assert_array_equal(c1.get_segments(), c2.get_segments())
-+ assert_array_equal(get_contour_coords(c1), get_contour_coords(c2))
-
- with pytest.raises(ValueError):
- kdeplot(**plot_kws, levels=[0, 1, 2])
-@@ -1042,7 +1063,7 @@ def test_levels_and_thresh(self, long_df):
- kdeplot(**plot_kws, levels=n, thresh=0, ax=ax2)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- assert_array_equal(c1.get_segments(), c2.get_segments())
-+ assert_array_equal(get_contour_coords(c1), get_contour_coords(c2))
- for c1, c2 in zip(ax1.collections, ax2.collections):
- assert_array_equal(c1.get_facecolors(), c2.get_facecolors())
-
-@@ -2322,13 +2343,13 @@ def test_bivariate_kde_norm(self, rng):
- z = [0] * 80 + [1] * 20
-
- g = displot(x=x, y=y, col=z, kind="kde", levels=10)
-- l1 = sum(bool(c.get_segments()) for c in g.axes.flat[0].collections)
-- l2 = sum(bool(c.get_segments()) for c in g.axes.flat[1].collections)
-+ l1 = sum(bool(get_contour_coords(c)) for c in g.axes.flat[0].collections)
-+ l2 = sum(bool(get_contour_coords(c)) for c in g.axes.flat[1].collections)
- assert l1 > l2
-
- g = displot(x=x, y=y, col=z, kind="kde", levels=10, common_norm=False)
-- l1 = sum(bool(c.get_segments()) for c in g.axes.flat[0].collections)
-- l2 = sum(bool(c.get_segments()) for c in g.axes.flat[1].collections)
-+ l1 = sum(bool(get_contour_coords(c)) for c in g.axes.flat[0].collections)
-+ l2 = sum(bool(get_contour_coords(c)) for c in g.axes.flat[1].collections)
- assert l1 == l2
-
- def test_bivariate_hist_norm(self, rng):
-
-From a20ce3fabeb23c97b5827d9fb0c6a96ac109ea64 Mon Sep 17 00:00:00 2001
-From: Michael Waskom <mwaskom@gmail.com>
-Date: Sun, 31 Oct 2021 16:10:47 -0400
-Subject: [PATCH 3/4] Update legend tests for mpl3.5 compatability
-
----
- seaborn/tests/test_distributions.py | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/seaborn/tests/test_distributions.py b/seaborn/tests/test_distributions.py
-index 466efb69e..024fe7541 100644
---- a/seaborn/tests/test_distributions.py
-+++ b/seaborn/tests/test_distributions.py
-@@ -872,7 +872,7 @@ def test_legend(self, long_df):
- for label, level in zip(legend_labels, order):
- assert label.get_text() == level
-
-- legend_artists = ax.legend_.findobj(mpl.lines.Line2D)[::2]
-+ legend_artists = ax.legend_.findobj(mpl.lines.Line2D)
- palette = color_palette()
- for artist, color in zip(legend_artists, palette):
- assert_colors_equal(artist.get_color(), color)
-
diff --git a/gnu/packages/patches/python-seaborn-kde-test.patch b/gnu/packages/patches/python-seaborn-kde-test.patch
deleted file mode 100644
index f300dffc6f..0000000000
--- a/gnu/packages/patches/python-seaborn-kde-test.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-This patch is an excerpt of this upstream commit:
-
- commit 0a24478a550132f1882e5be5f5dbc0fc446a8a6c
- Author: Michael Waskom <mwaskom@users.noreply.github.com>
- Date: Mon Dec 21 18:44:58 2020 -0500
-
- Raise minimal supported Python to 3.7 and bump requirements (#2396)
-
-It fixes the failure of 'test_weights'.
-
---- a/seaborn/tests/test_distributions.py
-+++ b/seaborn/tests/test_distributions.py
-@@ -709,21 +708,17 @@ class TestKDEPlotUnivariate:
- integral = integrate.trapz(ydata, np.log10(xdata))
- assert integral == pytest.approx(1)
-
-- @pytest.mark.skipif(
-- LooseVersion(scipy.__version__) < "1.2.0",
-- reason="Weights require scipy >= 1.2.0"
-- )
- def test_weights(self):
-
- x = [1, 2]
- weights = [2, 1]
-
-- ax = kdeplot(x=x, weights=weights)
-+ ax = kdeplot(x=x, weights=weights, bw_method=.1)
-
- xdata, ydata = ax.lines[0].get_xydata().T
-
-- y1 = ydata[np.argwhere(np.abs(xdata - 1).min())]
-- y2 = ydata[np.argwhere(np.abs(xdata - 2).min())]
-+ y1 = ydata[np.abs(xdata - 1).argmin()]
-+ y2 = ydata[np.abs(xdata - 2).argmin()]
-
- assert y1 == pytest.approx(2 * y2)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7c647bd42f..593af72575 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9975,40 +9975,36 @@ (define-public python-pyqrcode
(define-public python-seaborn
(package
(name "python-seaborn")
- (version "0.11.2")
+ (version "0.12.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "seaborn" version))
(sha256
(base32
- "1xpl3zb945sihsiwm9q1yyx84sakk1phcg0fprj6i0j0dllfjifg"))
- (patches (search-patches "python-seaborn-kde-test.patch"
- "python-seaborn-2690.patch"))))
+ "08vvnp4ps86857imxz2l5xi2vir5xdcdp3apq4badb4b5llifgw9"))))
(build-system python-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'patch-more-tests
- (lambda _
- (substitute* "seaborn/tests/test_distributions.py"
- (("get_contour_color\\(ax\\.collections\\[0\\]\\)")
- "get_contour_color(ax.collections[0])")
- (("c\\.get_color\\(\\)") "get_contour_color(c)")
- (("def test_hue_ignores_cmap")
- "def skip_test_hue_ignores_cmap")
- (("def test_fill_artists")
- "def skip_test_fill_artists")
- (("def test_with_rug") "def skip_test_with_rug"))))
- (add-before 'check 'start-xserver
- (lambda _
- (system "Xvfb :1 &")
- (setenv "DISPLAY" ":1")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "seaborn")))))))
+ (list #:modules '((guix build python-build-system)
+ (guix build utils)
+ (ice-9 match))
+ #:phases #~(modify-phases %standard-phases
+ (replace 'build
+ (lambda _
+ (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+ (replace 'install
+ (lambda _
+ (match (find-files "dist" "\\.whl$")
+ ((wheel _ ...)
+ (invoke "python" "-m" "pip" "install"
+ (string-append "--prefix=" #$output)
+ wheel)))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv")))))))
(propagated-inputs (list python-pandas python-matplotlib python-numpy
python-scipy))
- (native-inputs (list python-pytest xorg-server-for-tests))
+ (native-inputs (list python-flit-core python-pypa-build python-pytest))
(home-page "https://seaborn.pydata.org/")
(synopsis "Statistical data visualization")
(description
--
2.37.3
A
A
Arun Isaac wrote on 12 Oct 2022 14:29
[PATCH v2 0/1] Update python-seaborn
(address . 58466@debbugs.gnu.org)(name . Arun Isaac)(address . arunisaac@systemreboot.net)
20221012122919.13857-1-arunisaac@systemreboot.net
Fixed a line-too-long linter warning.

Arun Isaac (1):
gnu: python-seaborn: Update to 0.12.0.

gnu/local.mk | 2 -
.../patches/python-seaborn-2690.patch | 268 ------------------
.../patches/python-seaborn-kde-test.patch | 36 ---
gnu/packages/python-xyz.scm | 47 ++-
4 files changed, 22 insertions(+), 331 deletions(-)
delete mode 100644 gnu/packages/patches/python-seaborn-2690.patch
delete mode 100644 gnu/packages/patches/python-seaborn-kde-test.patch

--
2.37.3
A
A
Arun Isaac wrote on 12 Oct 2022 14:29
[PATCH v2 1/1] gnu: python-seaborn: Update to 0.12.0.
(address . 58466@debbugs.gnu.org)(name . Arun Isaac)(address . arunisaac@systemreboot.net)
20221012122919.13857-2-arunisaac@systemreboot.net
* gnu/packages/python-xyz.scm (python-seaborn): Update to 0.12.0.
[source]: Remove patches.
[arguments]: Import (ice-9 match) module. Remove patch-more-tests and
start-xserver phases. Replace build and install phases. Fix pytest command in
check phase.
[native-inputs]: Add python-flit-core and python-pypa-build. Remove
xorg-server-for-tests.
* gnu/packages/patches/python-seaborn-2690.patch,
gnu/packages/patches/python-seaborn-kde-test.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Unregister them.
---
gnu/local.mk | 2 -
.../patches/python-seaborn-2690.patch | 268 ------------------
.../patches/python-seaborn-kde-test.patch | 36 ---
gnu/packages/python-xyz.scm | 47 ++-
4 files changed, 22 insertions(+), 331 deletions(-)
delete mode 100644 gnu/packages/patches/python-seaborn-2690.patch
delete mode 100644 gnu/packages/patches/python-seaborn-kde-test.patch

Toggle diff (398 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 195bbcc40a..bd3eb1d4f0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1745,8 +1745,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-robotframework-atest.patch \
%D%/packages/patches/python-robotframework-source-date-epoch.patch \
%D%/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch \
- %D%/packages/patches/python-seaborn-kde-test.patch \
- %D%/packages/patches/python-seaborn-2690.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.patch \
%D%/packages/patches/python-versioneer-guix-support.patch \
diff --git a/gnu/packages/patches/python-seaborn-2690.patch b/gnu/packages/patches/python-seaborn-2690.patch
deleted file mode 100644
index 4662d19c2d..0000000000
--- a/gnu/packages/patches/python-seaborn-2690.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-This patch was adapted from the upstream pull request 2690.
-
-From ebd6812d48f5b8ed1ebb7d79bda0b2a7b9ae2812 Mon Sep 17 00:00:00 2001
-From: Michael Waskom <mwaskom@gmail.com>
-Date: Sun, 31 Oct 2021 15:09:27 -0400
-Subject: [PATCH 1/4] Update boxplot tests for mpl3.5 compatability
-
----
- seaborn/tests/test_categorical.py | 30 +++++++++++++++++++-----------
- 1 file changed, 19 insertions(+), 11 deletions(-)
-
-diff --git a/seaborn/tests/test_categorical.py b/seaborn/tests/test_categorical.py
-index d4e09b703..488fad2d6 100644
---- a/seaborn/tests/test_categorical.py
-+++ b/seaborn/tests/test_categorical.py
-@@ -110,6 +110,11 @@ class CategoricalFixture:
- df = pd.DataFrame(dict(y=y, g=g, h=h, u=u))
- x_df["W"] = g
-
-+ def get_box_artists(self, ax):
-+
-+ # Exclude labeled patches, which are for the legend
-+ return [p for p in ax.patches if not p.get_label()]
-+
-
- class TestCategoricalPlotter(CategoricalFixture):
-
-@@ -855,12 +863,12 @@ def test_hue_offsets(self):
- def test_axes_data(self):
-
- ax = cat.boxplot(x="g", y="y", data=self.df)
-- assert len(ax.artists) == 3
-+ assert len(self.get_box_artists(ax)) == 3
-
- plt.close("all")
-
- ax = cat.boxplot(x="g", y="y", hue="h", data=self.df)
-- assert len(ax.artists) == 6
-+ assert len(self.get_box_artists(ax)) == 6
-
- plt.close("all")
-
-@@ -868,14 +876,14 @@ def test_box_colors(self):
-
- ax = cat.boxplot(x="g", y="y", data=self.df, saturation=1)
- pal = palettes.color_palette(n_colors=3)
-- for patch, color in zip(ax.artists, pal):
-+ for patch, color in zip(self.get_box_artists(ax), pal):
- assert patch.get_facecolor()[:3] == color
-
- plt.close("all")
-
- ax = cat.boxplot(x="g", y="y", hue="h", data=self.df, saturation=1)
- pal = palettes.color_palette(n_colors=2)
-- for patch, color in zip(ax.artists, pal * 2):
-+ for patch, color in zip(self.get_box_artists(ax), pal * 2):
- assert patch.get_facecolor()[:3] == color
-
- plt.close("all")
-@@ -884,7 +892,7 @@ def test_draw_missing_boxes(self):
-
- ax = cat.boxplot(x="g", y="y", data=self.df,
- order=["a", "b", "c", "d"])
-- assert len(ax.artists) == 3
-+ assert len(self.get_box_artists(ax)) == 3
-
- def test_missing_data(self):
-
-@@ -894,13 +902,13 @@ def test_missing_data(self):
- y[-2:] = np.nan
-
- ax = cat.boxplot(x=x, y=y)
-- assert len(ax.artists) == 3
-+ assert len(self.get_box_artists(ax)) == 3
-
- plt.close("all")
-
- y[-1] = 0
- ax = cat.boxplot(x=x, y=y, hue=h)
-- assert len(ax.artists) == 7
-+ assert len(self.get_box_artists(ax)) == 7
-
- plt.close("all")
-
-@@ -2766,11 +2774,11 @@ def test_plot_elements(self):
-
- g = cat.catplot(x="g", y="y", data=self.df, kind="box")
- want_artists = self.g.unique().size
-- assert len(g.ax.artists) == want_artists
-+ assert len(self.get_box_artists(g.ax)) == want_artists
-
- g = cat.catplot(x="g", y="y", hue="h", data=self.df, kind="box")
- want_artists = self.g.unique().size * self.h.unique().size
-- assert len(g.ax.artists) == want_artists
-+ assert len(self.get_box_artists(g.ax)) == want_artists
-
- g = cat.catplot(x="g", y="y", data=self.df,
- kind="violin", inner=None)
-@@ -3137,14 +3145,14 @@ def test_box_colors(self):
-
- ax = cat.boxenplot(x="g", y="y", data=self.df, saturation=1)
- pal = palettes.color_palette(n_colors=3)
-- for patch, color in zip(ax.artists, pal):
-+ for patch, color in zip(self.get_box_artists(ax), pal):
- assert patch.get_facecolor()[:3] == color
-
- plt.close("all")
-
- ax = cat.boxenplot(x="g", y="y", hue="h", data=self.df, saturation=1)
- pal = palettes.color_palette(n_colors=2)
-- for patch, color in zip(ax.artists, pal * 2):
-+ for patch, color in zip(self.get_box_artists(ax), pal * 2):
- assert patch.get_facecolor()[:3] == color
-
- plt.close("all")
-
-From ff78ed38817a346e760194ab3b03b28d7ea3ba1b Mon Sep 17 00:00:00 2001
-From: Michael Waskom <mwaskom@gmail.com>
-Date: Sun, 31 Oct 2021 15:50:54 -0400
-Subject: [PATCH 2/4] Update kdeplot tests for mpl3.5 compatability
-
----
- seaborn/tests/test_distributions.py | 53 ++++++++++++++++++++---------
- 1 file changed, 37 insertions(+), 16 deletions(-)
-
-diff --git a/seaborn/tests/test_distributions.py b/seaborn/tests/test_distributions.py
-index d241fd978..466efb69e 100644
---- a/seaborn/tests/test_distributions.py
-+++ b/seaborn/tests/test_distributions.py
-@@ -39,6 +39,27 @@
- )
-
-
-+def get_contour_coords(c):
-+ """Provide compatability for change in contour artist type in mpl3.5."""
-+ # See https://github.com/matplotlib/matplotlib/issues/20906
-+ if isinstance(c, mpl.collections.LineCollection):
-+ return c.get_segments()
-+ elif isinstance(c, mpl.collections.PathCollection):
-+ return [p.vertices[:np.argmax(p.codes) + 1] for p in c.get_paths()]
-+
-+
-+def get_contour_color(c):
-+ """Provide compatability for change in contour artist type in mpl3.5."""
-+ # See https://github.com/matplotlib/matplotlib/issues/20906
-+ if isinstance(c, mpl.collections.LineCollection):
-+ return c.get_color()
-+ elif isinstance(c, mpl.collections.PathCollection):
-+ if c.get_facecolor().size:
-+ return c.get_facecolor()
-+ else:
-+ return c.get_edgecolor()
-+
-+
- class TestDistPlot(object):
-
- rs = np.random.RandomState(0)
-@@ -902,7 +923,7 @@ def test_fill_artists(self, long_df):
- f, ax = plt.subplots()
- kdeplot(data=long_df, x="x", y="y", hue="c", fill=fill)
- for c in ax.collections:
-- if fill:
-+ if fill or Version(mpl.__version__) >= Version("3.5.0b0"):
- assert isinstance(c, mpl.collections.PathCollection)
- else:
- assert isinstance(c, mpl.collections.LineCollection)
-@@ -918,8 +939,8 @@ def test_common_norm(self, rng):
- kdeplot(x=x, y=y, hue=hue, common_norm=True, ax=ax1)
- kdeplot(x=x, y=y, hue=hue, common_norm=False, ax=ax2)
-
-- n_seg_1 = sum([len(c.get_segments()) > 0 for c in ax1.collections])
-- n_seg_2 = sum([len(c.get_segments()) > 0 for c in ax2.collections])
-+ n_seg_1 = sum([len(get_contour_coords(c)) > 0 for c in ax1.collections])
-+ n_seg_2 = sum([len(get_contour_coords(c)) > 0 for c in ax2.collections])
- assert n_seg_2 > n_seg_1
-
- def test_log_scale(self, rng):
-@@ -946,7 +967,7 @@ def test_log_scale(self, rng):
- ax2.contour(10 ** xx, yy, density, levels=levels)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- assert_array_equal(c1.get_segments(), c2.get_segments())
-+ assert_array_equal(get_contour_coords(c1), get_contour_coords(c2))
-
- def test_bandwidth(self, rng):
-
-@@ -959,7 +980,7 @@ def test_bandwidth(self, rng):
- kdeplot(x=x, y=y, bw_adjust=2, ax=ax2)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- seg1, seg2 = c1.get_segments(), c2.get_segments()
-+ seg1, seg2 = get_contour_coords(c1), get_contour_coords(c2)
- if seg1 + seg2:
- x1 = seg1[0][:, 0]
- x2 = seg2[0][:, 0]
-@@ -980,9 +1001,9 @@ def test_weights(self, rng):
- kdeplot(x=x, y=y, hue=hue, weights=weights, ax=ax2)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- if c1.get_segments() and c2.get_segments():
-- seg1 = np.concatenate(c1.get_segments(), axis=0)
-- seg2 = np.concatenate(c2.get_segments(), axis=0)
-+ if get_contour_coords(c1) and get_contour_coords(c2):
-+ seg1 = np.concatenate(get_contour_coords(c1), axis=0)
-+ seg2 = np.concatenate(get_contour_coords(c2), axis=0)
- assert not np.array_equal(seg1, seg2)
-
- def test_hue_ignores_cmap(self, long_df):
-@@ -1030,7 +1051,7 @@ def test_levels_and_thresh(self, long_df):
- kdeplot(**plot_kws, levels=np.linspace(thresh, 1, n), ax=ax2)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- assert_array_equal(c1.get_segments(), c2.get_segments())
-+ assert_array_equal(get_contour_coords(c1), get_contour_coords(c2))
-
- with pytest.raises(ValueError):
- kdeplot(**plot_kws, levels=[0, 1, 2])
-@@ -1042,7 +1063,7 @@ def test_levels_and_thresh(self, long_df):
- kdeplot(**plot_kws, levels=n, thresh=0, ax=ax2)
-
- for c1, c2 in zip(ax1.collections, ax2.collections):
-- assert_array_equal(c1.get_segments(), c2.get_segments())
-+ assert_array_equal(get_contour_coords(c1), get_contour_coords(c2))
- for c1, c2 in zip(ax1.collections, ax2.collections):
- assert_array_equal(c1.get_facecolors(), c2.get_facecolors())
-
-@@ -2322,13 +2343,13 @@ def test_bivariate_kde_norm(self, rng):
- z = [0] * 80 + [1] * 20
-
- g = displot(x=x, y=y, col=z, kind="kde", levels=10)
-- l1 = sum(bool(c.get_segments()) for c in g.axes.flat[0].collections)
-- l2 = sum(bool(c.get_segments()) for c in g.axes.flat[1].collections)
-+ l1 = sum(bool(get_contour_coords(c)) for c in g.axes.flat[0].collections)
-+ l2 = sum(bool(get_contour_coords(c)) for c in g.axes.flat[1].collections)
- assert l1 > l2
-
- g = displot(x=x, y=y, col=z, kind="kde", levels=10, common_norm=False)
-- l1 = sum(bool(c.get_segments()) for c in g.axes.flat[0].collections)
-- l2 = sum(bool(c.get_segments()) for c in g.axes.flat[1].collections)
-+ l1 = sum(bool(get_contour_coords(c)) for c in g.axes.flat[0].collections)
-+ l2 = sum(bool(get_contour_coords(c)) for c in g.axes.flat[1].collections)
- assert l1 == l2
-
- def test_bivariate_hist_norm(self, rng):
-
-From a20ce3fabeb23c97b5827d9fb0c6a96ac109ea64 Mon Sep 17 00:00:00 2001
-From: Michael Waskom <mwaskom@gmail.com>
-Date: Sun, 31 Oct 2021 16:10:47 -0400
-Subject: [PATCH 3/4] Update legend tests for mpl3.5 compatability
-
----
- seaborn/tests/test_distributions.py | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/seaborn/tests/test_distributions.py b/seaborn/tests/test_distributions.py
-index 466efb69e..024fe7541 100644
---- a/seaborn/tests/test_distributions.py
-+++ b/seaborn/tests/test_distributions.py
-@@ -872,7 +872,7 @@ def test_legend(self, long_df):
- for label, level in zip(legend_labels, order):
- assert label.get_text() == level
-
-- legend_artists = ax.legend_.findobj(mpl.lines.Line2D)[::2]
-+ legend_artists = ax.legend_.findobj(mpl.lines.Line2D)
- palette = color_palette()
- for artist, color in zip(legend_artists, palette):
- assert_colors_equal(artist.get_color(), color)
-
diff --git a/gnu/packages/patches/python-seaborn-kde-test.patch b/gnu/packages/patches/python-seaborn-kde-test.patch
deleted file mode 100644
index f300dffc6f..0000000000
--- a/gnu/packages/patches/python-seaborn-kde-test.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-This patch is an excerpt of this upstream commit:
-
- commit 0a24478a550132f1882e5be5f5dbc0fc446a8a6c
- Author: Michael Waskom <mwaskom@users.noreply.github.com>
- Date: Mon Dec 21 18:44:58 2020 -0500
-
- Raise minimal supported Python to 3.7 and bump requirements (#2396)
-
-It fixes the failure of 'test_weights'.
-
---- a/seaborn/tests/test_distributions.py
-+++ b/seaborn/tests/test_distributions.py
-@@ -709,21 +708,17 @@ class TestKDEPlotUnivariate:
- integral = integrate.trapz(ydata, np.log10(xdata))
- assert integral == pytest.approx(1)
-
-- @pytest.mark.skipif(
-- LooseVersion(scipy.__version__) < "1.2.0",
-- reason="Weights require scipy >= 1.2.0"
-- )
- def test_weights(self):
-
- x = [1, 2]
- weights = [2, 1]
-
-- ax = kdeplot(x=x, weights=weights)
-+ ax = kdeplot(x=x, weights=weights, bw_method=.1)
-
- xdata, ydata = ax.lines[0].get_xydata().T
-
-- y1 = ydata[np.argwhere(np.abs(xdata - 1).min())]
-- y2 = ydata[np.argwhere(np.abs(xdata - 2).min())]
-+ y1 = ydata[np.abs(xdata - 1).argmin()]
-+ y2 = ydata[np.abs(xdata - 2).argmin()]
-
- assert y1 == pytest.approx(2 * y2)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7c647bd42f..d9a99e230b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9975,40 +9975,37 @@ (define-public python-pyqrcode
(define-public python-seaborn
(package
(name "python-seaborn")
- (version "0.11.2")
+ (version "0.12.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "seaborn" version))
(sha256
(base32
- "1xpl3zb945sihsiwm9q1yyx84sakk1phcg0fprj6i0j0dllfjifg"))
- (patches (search-patches "python-seaborn-kde-test.patch"
- "python-seaborn-2690.patch"))))
+ "08vvnp4ps86857imxz2l5xi2vir5xdcdp3apq4badb4b5llifgw9"))))
(build-system python-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'patch-more-tests
- (lambda _
- (substitute* "seaborn/tests/test_distributions.py"
- (("get_contour_color\\(ax\\.collections\\[0\\]\\)")
- "get_contour_color(ax.collections[0])")
- (("c\\.get_color\\(\\)") "get_contour_color(c)")
- (("def test_hue_ignores_cmap")
- "def skip_test_hue_ignores_cmap")
- (("def test_fill_artists")
- "def skip_test_fill_artists")
- (("def test_with_rug") "def skip_test_with_rug"))))
- (add-before 'check 'start-xserver
- (lambda _
- (system "Xvfb :1 &")
- (setenv "DISPLAY" ":1")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "seaborn")))))))
+ (list #:modules '((guix build python-build-system)
+ (guix build utils)
+ (ice-9 match))
+ #:phases #~(modify-phases %standard-phases
+ (replace 'build
+ (lambda _
+ (invoke "python" "-m" "build" "--wheel"
+ "--no-isolation" ".")))
+ (replace 'install
+ (lambda _
+ (match (find-files "dist" "\\.whl$")
+ ((wheel _ ...)
+ (invoke "python" "-m" "pip" "install"
+ (string-append "--prefix=" #$output)
+ wheel)))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv")))))))
(propagated-inputs (list python-pandas python-matplotlib python-numpy
python-scipy))
- (native-inputs (list python-pytest xorg-server-for-tests))
+ (native-inputs (list python-flit-core python-pypa-build python-pytest))
(home-page "https://seaborn.pydata.org/")
(synopsis "Statistical data visualization")
(description
--
2.37.3
C
C
Christopher Baines wrote on 6 Dec 2022 11:10
Re: [bug#58466] [PATCH v2 0/1] Update python-seaborn
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
87r0xcn8oh.fsf@cbaines.net
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (13 lines)
> Fixed a line-too-long linter warning.
>
> Arun Isaac (1):
> gnu: python-seaborn: Update to 0.12.0.
>
> gnu/local.mk | 2 -
> .../patches/python-seaborn-2690.patch | 268 ------------------
> .../patches/python-seaborn-kde-test.patch | 36 ---
> gnu/packages/python-xyz.scm | 47 ++-
> 4 files changed, 22 insertions(+), 331 deletions(-)
> delete mode 100644 gnu/packages/patches/python-seaborn-2690.patch
> delete mode 100644 gnu/packages/patches/python-seaborn-kde-test.patch

This looks good to me, please push :)

Thanks,

Chris
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmOPFU5fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9XduKg/+PYD/5TPwkJQtdgQALYAnQdoLmrPgTbUf
qj7rRzCI+F9uDhoeL9ke3R8tzhiKQi5RRBhi9n5CNyWwRdk6MGHErCn4wN8SfoOx
HVK3gavOQoANibjrRJ1kTsGa4lLyBjpVJTsQnwxtMuI8DzqMz2KQ4KUP94u3Ts3+
ypkbi8hrecRUaypud3FguIDK+UzYjRtcEYpsxIwgrB60sOhoUPMZu4Ak3NiR0AN2
idNm3maYT7/dc3MuDcG/DPhFvNM0IVDYNuKZ35ZepRcXa1mvYFDoCJEoFKQ0oZhL
bjjKOy6Hy6vZlmlNTbiO5BZYP++8v72xhTcmRqw4Ck+9HaReIT19Gzp5WT2iPQ1U
rNNJMmyi5sYkeHuB3EPkCngFqYtJrQRUPUoayCGDd1SQTKOJcGq5QyC5lRZ7N7lY
YyU5cfQkUD6K7eiNMCYa50XooWZ6HZKFklLQkeU0qrEOFgAYh7jmGTjzu/Ua3qFc
jznvc8jE31iNdLyymE41xyGpt8xvmvcgvIaiCo1cG3w+r7vpsonaQIXJb4FDuLw6
QbzcPE54QptDKbJLZ94SIq5xCv7HRoDg4yzOyI1uXlGOJwVS/UonSOYe0DPH4Toj
va4bAayLi45voZjGPoDTAY28T+hmbkDgerCGEn5ISZ86NOWrqH8XWW6yxNdaFLt1
r/aBl9iK1m4=
=JVtG
-----END PGP SIGNATURE-----

A
A
Arun Isaac wrote on 12 Dec 2022 00:59
(name . Christopher Baines)(address . mail@cbaines.net)(address . 58466-done@debbugs.gnu.org)
87pmcpebkk.fsf@systemreboot.net
Pushed, thanks!
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 58466@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 58466
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch