GNU bug report logs - #58466
[PATCH] gnu: python-seaborn: Update to 0.12.0.

Previous Next

Package: guix-patches;

Reported by: Arun Isaac <arunisaac <at> systemreboot.net>

Date: Wed, 12 Oct 2022 12:23:02 UTC

Severity: normal

Tags: patch

Done: Arun Isaac <arunisaac <at> systemreboot.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 58466 in the body.
You can then email your comments to 58466 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#58466; Package guix-patches. (Wed, 12 Oct 2022 12:23:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Arun Isaac <arunisaac <at> systemreboot.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Wed, 12 Oct 2022 12:23:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: guix-patches <at> gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH] gnu: python-seaborn: Update to 0.12.0.
Date: Wed, 12 Oct 2022 17:51:54 +0530
* 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

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 <at> 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 <at> 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 <at> 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 <at> 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





Information forwarded to guix-patches <at> gnu.org:
bug#58466; Package guix-patches. (Wed, 12 Oct 2022 12:30:02 GMT) Full text and rfc822 format available.

Message #8 received at 58466 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 58466 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH v2 0/1] Update python-seaborn
Date: Wed, 12 Oct 2022 17:59:18 +0530
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





Information forwarded to guix-patches <at> gnu.org:
bug#58466; Package guix-patches. (Wed, 12 Oct 2022 12:30:03 GMT) Full text and rfc822 format available.

Message #11 received at 58466 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 58466 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH v2 1/1] gnu: python-seaborn: Update to 0.12.0.
Date: Wed, 12 Oct 2022 17:59:19 +0530
* 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

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 <at> 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 <at> 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 <at> 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 <at> 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





Information forwarded to guix-patches <at> gnu.org:
bug#58466; Package guix-patches. (Tue, 06 Dec 2022 10:12:01 GMT) Full text and rfc822 format available.

Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Christopher Baines <mail <at> cbaines.net>
To: Arun Isaac <arunisaac <at> systemreboot.net>
Cc: guix-patches <at> gnu.org, 58466 <at> debbugs.gnu.org
Subject: Re: [bug#58466] [PATCH v2 0/1] Update python-seaborn
Date: Tue, 06 Dec 2022 10:10:56 +0000
[Message part 1 (text/plain, inline)]
Arun Isaac <arunisaac <at> systemreboot.net> writes:

> 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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#58466; Package guix-patches. (Tue, 06 Dec 2022 10:12:02 GMT) Full text and rfc822 format available.

Reply sent to Arun Isaac <arunisaac <at> systemreboot.net>:
You have taken responsibility. (Mon, 12 Dec 2022 00:00:02 GMT) Full text and rfc822 format available.

Notification sent to Arun Isaac <arunisaac <at> systemreboot.net>:
bug acknowledged by developer. (Mon, 12 Dec 2022 00:00:03 GMT) Full text and rfc822 format available.

Message #22 received at 58466-done <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: Christopher Baines <mail <at> cbaines.net>
Cc: 58466-done <at> debbugs.gnu.org
Subject: Re: [bug#58466] [PATCH v2 0/1] Update python-seaborn
Date: Sun, 11 Dec 2022 23:59:39 +0000
Pushed, thanks!




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 09 Jan 2023 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 102 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.