python-seaborn failed to build from source in Fedora rawhide/f36 https://koji.fedoraproject.org/koji/taskinfo?taskID=81985770 For details on the mass rebuild see: https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Please fix python-seaborn at your earliest convenience and set the bug's status to ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks, python-seaborn will be orphaned. Before branching of Fedora 37, python-seaborn will be retired, if it still fails to build. For more details on the FTBFS policy, please visit: https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/
Created attachment 1856357 [details] build.log file build.log too big, will only attach last 32768 bytes
Created attachment 1856358 [details] root.log file root.log too big, will only attach last 32768 bytes
Created attachment 1856359 [details] state.log
This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle. Changing version to 36.
=================================== FAILURES =================================== ________________________ TestBoxPlotter.test_axes_data _________________________ self = <seaborn.tests.test_categorical.TestBoxPlotter object at 0xffff2a7618d0> def test_axes_data(self): ax = cat.boxplot(x="g", y="y", data=self.df) > assert len(ax.artists) == 3 E assert 0 == 3 E +0 E -3 seaborn/tests/test_categorical.py:775: AssertionError ____________________ TestBoxPlotter.test_draw_missing_boxes ____________________ self = <seaborn.tests.test_categorical.TestBoxPlotter object at 0xffff74158e20> 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 E assert 0 == 3 E +0 E -3 seaborn/tests/test_categorical.py:804: AssertionError _______________________ TestBoxPlotter.test_missing_data _______________________ self = <seaborn.tests.test_categorical.TestBoxPlotter object at 0xffff2a540700> def test_missing_data(self): x = ["a", "a", "b", "b", "c", "c", "d", "d"] h = ["x", "y", "x", "y", "x", "y", "x", "y"] y = self.rs.randn(8) y[-2:] = np.nan ax = cat.boxplot(x=x, y=y) > assert len(ax.artists) == 3 E assert 0 == 3 E +0 E -3 seaborn/tests/test_categorical.py:814: AssertionError ________________________ TestCatPlot.test_plot_elements ________________________ self = <seaborn.tests.test_categorical.TestCatPlot object at 0xffff748863e0> def test_plot_elements(self): g = cat.catplot(x="g", y="y", data=self.df, kind="point") assert len(g.ax.collections) == 1 want_lines = self.g.unique().size + 1 assert len(g.ax.lines) == want_lines g = cat.catplot(x="g", y="y", hue="h", data=self.df, kind="point") want_collections = self.h.unique().size assert len(g.ax.collections) == want_collections want_lines = (self.g.unique().size + 1) * self.h.unique().size assert len(g.ax.lines) == want_lines g = cat.catplot(x="g", y="y", data=self.df, kind="bar") want_elements = self.g.unique().size assert len(g.ax.patches) == want_elements assert len(g.ax.lines) == want_elements g = cat.catplot(x="g", y="y", hue="h", data=self.df, kind="bar") want_elements = self.g.unique().size * self.h.unique().size assert len(g.ax.patches) == want_elements assert len(g.ax.lines) == want_elements g = cat.catplot(x="g", data=self.df, kind="count") want_elements = self.g.unique().size assert len(g.ax.patches) == want_elements assert len(g.ax.lines) == 0 g = cat.catplot(x="g", hue="h", data=self.df, kind="count") want_elements = self.g.unique().size * self.h.unique().size assert len(g.ax.patches) == want_elements assert len(g.ax.lines) == 0 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 E assert 0 == 3 E +0 E -3 seaborn/tests/test_categorical.py:2507: AssertionError ______________________ TestKDEPlotUnivariate.test_legend _______________________ self = <seaborn.tests.test_distributions.TestKDEPlotUnivariate object at 0xffff74223fa0> long_df = x y z a b c t s f a_cat s_cat s_str 0 12 0.449243 6.611886 b p 0 2004-01-0...0.3 a 8 8 99 15 0.073484 1.036343 c p 0 2005-01-01 2 0.3 c 2 2 [100 rows x 12 columns] def test_legend(self, long_df): ax = kdeplot(data=long_df, x="x", hue="a") assert ax.legend_.get_title().get_text() == "a" legend_labels = ax.legend_.get_texts() order = categorical_order(long_df["a"]) for label, level in zip(legend_labels, order): assert label.get_text() == level legend_artists = ax.legend_.findobj(mpl.lines.Line2D)[::2] palette = color_palette() for artist, color in zip(legend_artists, palette): > assert artist.get_color() == color E assert (0.3333333333...4313725490196) == (0.8666666666...5686274509804) E At index 0 diff: 0.3333333333333333 != 0.8666666666666667 E Full diff: E - (0.8666666666666667, 0.5176470588235295, 0.3215686274509804) E + (0.3333333333333333, 0.6588235294117647, 0.40784313725490196) seaborn/tests/test_distributions.py:783: AssertionError ____________________ TestKDEPlotBivariate.test_fill_artists ____________________ self = <seaborn.tests.test_distributions.TestKDEPlotBivariate object at 0xffff6fce8700> long_df = x y z a b c t s f a_cat s_cat s_str 0 12 0.449243 6.611886 b p 0 2004-01-0...0.3 a 8 8 99 15 0.073484 1.036343 c p 0 2005-01-01 2 0.3 c 2 2 [100 rows x 12 columns] def test_fill_artists(self, long_df): for fill in [True, False]: f, ax = plt.subplots() kdeplot(data=long_df, x="x", y="y", hue="c", fill=fill) for c in ax.collections: if fill: assert isinstance(c, mpl.collections.PathCollection) else: > assert isinstance(c, mpl.collections.LineCollection) E AssertionError: assert False E + where False = isinstance(<matplotlib.collections.PathCollection object at 0xffff2a86ce80>, <class 'matplotlib.collections.LineCollection'>) E + where <class 'matplotlib.collections.LineCollection'> = <module 'matplotlib.collections' from '/usr/lib64/python3.10/site-packages/matplotlib/collections.py'>.LineCollection E + where <module 'matplotlib.collections' from '/usr/lib64/python3.10/site-packages/matplotlib/collections.py'> = mpl.collections seaborn/tests/test_distributions.py:830: AssertionError ____________________ TestKDEPlotBivariate.test_common_norm _____________________ self = <seaborn.tests.test_distributions.TestKDEPlotBivariate object at 0xffff2ae16560> rng = RandomState(MT19937) at 0xFFFF74176D40 def test_common_norm(self, rng): hue = np.repeat(["a", "a", "a", "b"], 40) x, y = rng.multivariate_normal([0, 0], [(.2, .5), (.5, 2)], len(hue)).T x[hue == "a"] -= 2 x[hue == "b"] += 2 f, (ax1, ax2) = plt.subplots(ncols=2) 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]) seaborn/tests/test_distributions.py:843: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .0 = <generator object _AxesBase.ArtistList.__iter__ at 0xffff6fc8dd20> > n_seg_1 = sum([len(c.get_segments()) > 0 for c in ax1.collections]) E AttributeError: 'PathCollection' object has no attribute 'get_segments' seaborn/tests/test_distributions.py:843: AttributeError _____________________ TestKDEPlotBivariate.test_log_scale ______________________ self = <seaborn.tests.test_distributions.TestKDEPlotBivariate object at 0xffff2ae63700> rng = RandomState(MT19937) at 0xFFFF74177340 def test_log_scale(self, rng): x = rng.lognormal(0, 1, 100) y = rng.uniform(0, 1, 100) levels = .2, .5, 1 f, ax = plt.subplots() kdeplot(x=x, y=y, log_scale=True, levels=levels, ax=ax) assert ax.get_xscale() == "log" assert ax.get_yscale() == "log" f, (ax1, ax2) = plt.subplots(ncols=2) kdeplot(x=x, y=y, log_scale=(10, False), levels=levels, ax=ax1) assert ax1.get_xscale() == "log" assert ax1.get_yscale() == "linear" p = _DistributionPlotter() kde = KDE() density, (xx, yy) = kde(np.log10(x), y) levels = p._quantile_to_level(density, levels) 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()) E AttributeError: 'PathCollection' object has no attribute 'get_segments' seaborn/tests/test_distributions.py:871: AttributeError _____________________ TestKDEPlotBivariate.test_bandwiddth _____________________ self = <seaborn.tests.test_distributions.TestKDEPlotBivariate object at 0xffff745199c0> rng = RandomState(MT19937) at 0xFFFF74176D40 def test_bandwiddth(self, rng): n = 100 x, y = rng.multivariate_normal([0, 0], [(.2, .5), (.5, 2)], n).T f, (ax1, ax2) = plt.subplots(ncols=2) kdeplot(x=x, y=y, ax=ax1) 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() E AttributeError: 'PathCollection' object has no attribute 'get_segments' seaborn/tests/test_distributions.py:884: AttributeError ______________________ TestKDEPlotBivariate.test_weights _______________________ self = <seaborn.tests.test_distributions.TestKDEPlotBivariate object at 0xffff2a4d38e0> rng = RandomState(MT19937) at 0xFFFF74177640 @pytest.mark.skipif( LooseVersion(scipy.__version__) < "1.2.0", reason="Weights require scipy >= 1.2.0" ) def test_weights(self, rng): import warnings warnings.simplefilter("error", np.VisibleDeprecationWarning) n = 100 x, y = rng.multivariate_normal([1, 3], [(.2, .5), (.5, 2)], n).T hue = np.repeat([0, 1], n // 2) weights = rng.uniform(0, 1, n) f, (ax1, ax2) = plt.subplots(ncols=2) kdeplot(x=x, y=y, hue=hue, ax=ax1) 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(): E AttributeError: 'PathCollection' object has no attribute 'get_segments' seaborn/tests/test_distributions.py:909: AttributeError __________________ TestKDEPlotBivariate.test_hue_ignores_cmap __________________ self = <seaborn.tests.test_distributions.TestKDEPlotBivariate object at 0xffff2a680b20> long_df = x y z a b c t s f a_cat s_cat s_str 0 12 0.449243 6.611886 b p 0 2004-01-0...0.3 a 8 8 99 15 0.073484 1.036343 c p 0 2005-01-01 2 0.3 c 2 2 [100 rows x 12 columns] def test_hue_ignores_cmap(self, long_df): with pytest.warns(UserWarning, match="cmap parameter ignored"): ax = kdeplot(data=long_df, x="x", y="y", hue="c", cmap="viridis") > color = tuple(ax.collections[0].get_color().squeeze()) E AttributeError: 'PathCollection' object has no attribute 'get_color' seaborn/tests/test_distributions.py:919: AttributeError ________________ TestKDEPlotBivariate.test_contour_line_colors _________________ self = <seaborn.tests.test_distributions.TestKDEPlotBivariate object at 0xffff745937f0> long_df = x y z a b c t s f a_cat s_cat s_str 0 12 0.449243 6.611886 b p 0 2004-01-0...0.3 a 8 8 99 15 0.073484 1.036343 c p 0 2005-01-01 2 0.3 c 2 2 [100 rows x 12 columns] def test_contour_line_colors(self, long_df): color = (.2, .9, .8, 1) ax = kdeplot(data=long_df, x="x", y="y", color=color) for c in ax.collections: > assert tuple(c.get_color().squeeze()) == color E AttributeError: 'PathCollection' object has no attribute 'get_color' seaborn/tests/test_distributions.py:928: AttributeError _________________ TestKDEPlotBivariate.test_levels_and_thresh __________________ self = <seaborn.tests.test_distributions.TestKDEPlotBivariate object at 0xffff6f8d0490> long_df = x y z a b c t s f a_cat s_cat s_str 0 12 0.449243 6.611886 b p 0 2004-01-0...0.3 a 8 8 99 15 0.073484 1.036343 c p 0 2005-01-01 2 0.3 c 2 2 [100 rows x 12 columns] def test_levels_and_thresh(self, long_df): f, (ax1, ax2) = plt.subplots(ncols=2) n = 8 thresh = .1 plot_kws = dict(data=long_df, x="x", y="y") kdeplot(**plot_kws, levels=n, thresh=thresh, ax=ax1) 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()) E AttributeError: 'PathCollection' object has no attribute 'get_segments' seaborn/tests/test_distributions.py:960: AttributeError ______________________ TestDisPlot.test_with_rug[kwargs0] ______________________ self = <seaborn.tests.test_distributions.TestDisPlot object at 0xffff2a932260> long_df = x y z a b c t s f a_cat s_cat s_str 0 12 0.449243 6.611886 b p 0 2004-01-0...0.3 a 8 8 99 15 0.073484 1.036343 c p 0 2005-01-01 2 0.3 c 2 2 [100 rows x 12 columns] kwargs = {'x': 'x'} @pytest.mark.parametrize( "kwargs", [ dict(x="x"), dict(x="x", y="y"), dict(x="x", hue="a"), ] ) def test_with_rug(self, long_df, kwargs): ax = rugplot(data=long_df, **kwargs) g = displot(long_df, rug=True, **kwargs) > g.ax.patches = [] E AttributeError: can't set attribute 'patches' seaborn/tests/test_distributions.py:2042: AttributeError ______________________ TestDisPlot.test_with_rug[kwargs1] ______________________ self = <seaborn.tests.test_distributions.TestDisPlot object at 0xffff746ab220> long_df = x y z a b c t s f a_cat s_cat s_str 0 12 0.449243 6.611886 b p 0 2004-01-0...0.3 a 8 8 99 15 0.073484 1.036343 c p 0 2005-01-01 2 0.3 c 2 2 [100 rows x 12 columns] kwargs = {'x': 'x', 'y': 'y'} @pytest.mark.parametrize( "kwargs", [ dict(x="x"), dict(x="x", y="y"), dict(x="x", hue="a"), ] ) def test_with_rug(self, long_df, kwargs): ax = rugplot(data=long_df, **kwargs) g = displot(long_df, rug=True, **kwargs) > g.ax.patches = [] E AttributeError: can't set attribute 'patches' seaborn/tests/test_distributions.py:2042: AttributeError ______________________ TestDisPlot.test_with_rug[kwargs2] ______________________ self = <seaborn.tests.test_distributions.TestDisPlot object at 0xffff2a55d0c0> long_df = x y z a b c t s f a_cat s_cat s_str 0 12 0.449243 6.611886 b p 0 2004-01-0...0.3 a 8 8 99 15 0.073484 1.036343 c p 0 2005-01-01 2 0.3 c 2 2 [100 rows x 12 columns] kwargs = {'hue': 'a', 'x': 'x'} @pytest.mark.parametrize( "kwargs", [ dict(x="x"), dict(x="x", y="y"), dict(x="x", hue="a"), ] ) def test_with_rug(self, long_df, kwargs): ax = rugplot(data=long_df, **kwargs) g = displot(long_df, rug=True, **kwargs) > g.ax.patches = [] E AttributeError: can't set attribute 'patches' seaborn/tests/test_distributions.py:2042: AttributeError _____________________ TestDisPlot.test_bivariate_kde_norm ______________________ self = <seaborn.tests.test_distributions.TestDisPlot object at 0xffff2a125ba0> rng = RandomState(MT19937) at 0xFFFF2A638040 def test_bivariate_kde_norm(self, rng): x, y = rng.normal(0, 1, (2, 100)) 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) seaborn/tests/test_distributions.py:2125: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .0 = <generator object _AxesBase.ArtistList.__iter__ at 0xffff6fc8f7d0> > l1 = sum(bool(c.get_segments()) for c in g.axes.flat[0].collections) E AttributeError: 'PathCollection' object has no attribute 'get_segments' seaborn/tests/test_distributions.py:2125: AttributeError