--- Begin Message ---
Source: mplcursors
Version: 0.3-2
Severity: serious
Justification: FTBFS on amd64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20200802 ftbfs-bullseye
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> dpkg-buildpackage
> -----------------
>
> Command: dpkg-buildpackage -us -uc -sa -rfakeroot
> dpkg-buildpackage: info: source package mplcursors
> dpkg-buildpackage: info: source version 0.3-2
> dpkg-buildpackage: info: source distribution unstable
> dpkg-buildpackage: info: source changed by Sudip Mukherjee
> <sudipm.mukher...@gmail.com>
> dpkg-source --before-build .
> dpkg-buildpackage: info: host architecture amd64
> dpkg-source: info: using options from mplcursors-0.3/debian/source/options:
> --extend-diff-ignore=_version.py
> debian/rules clean
> dh clean --with python3 --buildsystem=pybuild
> dh_auto_clean -O--buildsystem=pybuild
> I: pybuild base:217: python3.8 setup.py clean
> running clean
> removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build' (and
> everything under it)
> 'build/bdist.linux-x86_64' does not exist -- can't clean it
> 'build/scripts-3.8' does not exist -- can't clean it
> dh_autoreconf_clean -O--buildsystem=pybuild
> dh_clean -O--buildsystem=pybuild
> dpkg-source -b .
> dpkg-source: info: using options from mplcursors-0.3/debian/source/options:
> --extend-diff-ignore=_version.py
> dpkg-source: info: using source format '3.0 (quilt)'
> dpkg-source: info: building mplcursors using existing
> ./mplcursors_0.3.orig.tar.gz
> dpkg-source: info: building mplcursors in mplcursors_0.3-2.debian.tar.xz
> dpkg-source: info: building mplcursors in mplcursors_0.3-2.dsc
> debian/rules binary
> dh binary --with python3 --buildsystem=pybuild
> dh_update_autotools_config -O--buildsystem=pybuild
> dh_autoreconf -O--buildsystem=pybuild
> dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:217: python3.8 setup.py config
> running config
> dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:217: /usr/bin/python3 setup.py build
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors
> copying lib/mplcursors/__init__.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors
> copying lib/mplcursors/_mplcursors.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors
> copying lib/mplcursors/_version.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors
> copying lib/mplcursors/_pick_info.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors
> dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:217: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build; python3.8 -m pytest
> tests
> ============================= test session starts
> ==============================
> platform linux -- Python 3.8.5, pytest-4.6.11, py-1.8.1, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>, inifile: setup.cfg
> collected 56 items
>
> tests/test_mplcursors.py .......F..........FF....F...F.F................ [
> 83%]
> ........s
> [100%]
>
> =================================== FAILURES
> ===================================
> ______________________________ test_scatter_text
> _______________________________
>
> ax = <AxesSubplot:>
>
> def test_scatter_text(ax):
> ax.scatter([0, 1], [0, 1], c=[2, 3])
> cursor = mplcursors.cursor()
> _process_event("__mouse_click__", ax, (0, 0), 1)
> > assert cursor.selections[0].annotation.get_text() == "x=0\ny=0\n[2]"
> E AssertionError: assert 'x=0.000\ny=0.000\n[2.000]' == 'x=0\ny=0\n[2]'
> E - x=0.000
> E - y=0.000
> E - [2.000]
> E + x=0
> E + y=0
> E + [2]
>
> tests/test_mplcursors.py:166: AssertionError
> ______________________________ test_image[lower]
> _______________________________
>
> ax = <AxesSubplot:>, origin = 'lower'
>
> @pytest.mark.parametrize("origin", ["lower", "upper"])
> def test_image(ax, origin):
> array = np.arange(6).reshape((3, 2))
> ax.imshow(array, origin=origin)
>
> cursor = mplcursors.cursor()
> # Annotation text includes image value.
> _process_event("__mouse_click__", ax, (.25, .25), 1)
> sel, = cursor.selections
> assert (_parse_annotation(sel, r"x=(.*)\ny=(.*)\n\[0\]")
> == approx((.25, .25)))
> # Moving around.
> _process_event("key_press_event", ax, (.123, .456), "shift+right")
> sel, = cursor.selections
> > assert sel.annotation.get_text() == "x=1\ny=0\n[1]"
> E AssertionError: assert 'x=1.000\ny=0.000\n[1]' == 'x=1\ny=0\n[1]'
> E - x=1.000
> E - y=0.000
> E + x=1
> E + y=0
> E [1]
>
> tests/test_mplcursors.py:268: AssertionError
> ______________________________ test_image[upper]
> _______________________________
>
> ax = <AxesSubplot:>, origin = 'upper'
>
> @pytest.mark.parametrize("origin", ["lower", "upper"])
> def test_image(ax, origin):
> array = np.arange(6).reshape((3, 2))
> ax.imshow(array, origin=origin)
>
> cursor = mplcursors.cursor()
> # Annotation text includes image value.
> _process_event("__mouse_click__", ax, (.25, .25), 1)
> sel, = cursor.selections
> assert (_parse_annotation(sel, r"x=(.*)\ny=(.*)\n\[0\]")
> == approx((.25, .25)))
> # Moving around.
> _process_event("key_press_event", ax, (.123, .456), "shift+right")
> sel, = cursor.selections
> > assert sel.annotation.get_text() == "x=1\ny=0\n[1]"
> E AssertionError: assert 'x=1.000\ny=0.000\n[1]' == 'x=1\ny=0\n[1]'
> E - x=1.000
> E - y=0.000
> E + x=1
> E + y=0
> E [1]
>
> tests/test_mplcursors.py:268: AssertionError
> ______________________ test_quiver_and_barbs[Axes.quiver]
> ______________________
>
> ax = <AxesSubplot:>, plotter = <function Axes.quiver at 0x7f3baefd1310>
>
> @pytest.mark.parametrize("plotter", [Axes.quiver, Axes.barbs])
> def test_quiver_and_barbs(ax, plotter):
> plotter(ax, range(3), range(3))
> cursor = mplcursors.cursor()
> _process_event("__mouse_click__", ax, (.5, 0), 1)
> assert len(cursor.selections) == 0
> _process_event("__mouse_click__", ax, (1, 0), 1)
> > assert cursor.selections[0].annotation.get_text() == "x=1\ny=0\n(1,
> > 1)"
> E AssertionError: assert 'x=1.000\ny=0.0000\n(1, 1)' == 'x=1\ny=0\n(1,
> 1)'
> E - x=1.000
> E - y=0.0000
> E + x=1
> E + y=0
> E (1, 1)
>
> tests/test_mplcursors.py:342: AssertionError
> ________________________________ test_errorbar
> _________________________________
>
> ax = <AxesSubplot:>
>
> def test_errorbar(ax):
> ax.errorbar(range(2), range(2), [(1, 1), (1, 2)])
> cursor = mplcursors.cursor()
> assert len(cursor.artists) == 1
> _process_event("__mouse_click__", ax, (0, 2), 1)
> assert len(cursor.selections) == 0
> _process_event("__mouse_click__", ax, (.5, .5), 1)
> assert cursor.selections[0].target == approx((.5, .5))
> assert (_parse_annotation(cursor.selections[0], "x=(.*)\ny=(.*)")
> == approx((.5, .5)))
> _process_event("__mouse_click__", ax, (0, 1), 1)
> assert cursor.selections[0].target == approx((0, 0))
> > assert cursor.selections[0].annotation.get_text() == "x=0\ny=$0\\pm1$"
> E AssertionError: assert 'x=0.000\ny=$....00}^{+1.00}$' ==
> 'x=0\ny=$0\\pm1$'
> E - x=0.000
> E - y=$0.00_{+−1.00}^{+1.00}$
> E + x=0
> E + y=$0\pm1$
>
> tests/test_mplcursors.py:370: AssertionError
> __________________________________ test_stem
> ___________________________________
>
> ax = <AxesSubplot:>
>
> def test_stem(ax):
> with pytest.warns(None): # stem use_line_collection API change.
> ax.stem([1, 2, 3])
> cursor = mplcursors.cursor()
> assert len(cursor.artists) == 1
> > _process_event("__mouse_click__", ax, (.5, .5), 1)
>
> tests/test_mplcursors.py:390:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> tests/test_mplcursors.py:63: in _process_event
> _process_event("button_press_event", ax, coords, *args)
> tests/test_mplcursors.py:74: in _process_event
> ax.figure.canvas.callbacks.process(name, event)
> /usr/lib/python3/dist-packages/matplotlib/cbook/__init__.py:224: in process
> func(*args, **kwargs)
> mplcursors/_mplcursors.py:485: in _nonhover_handler
> self._on_select_button_press(event)
> mplcursors/_mplcursors.py:520: in _on_select_button_press
> pi = _pick_info.compute_pick(artist, per_axes_event[artist.axes])
> /usr/lib/python3.8/functools.py:875: in wrapper
> return dispatch(args[0].__class__)(*args, **kw)
> mplcursors/_pick_info.py:419: in _
> return compute_pick(artist.container, event)
> /usr/lib/python3.8/functools.py:875: in wrapper
> return dispatch(args[0].__class__)(*args, **kw)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> container = <StemContainer object of 3 artists>
> event = <matplotlib.backend_bases.MouseEvent object at 0x7f3bae3a9340>
>
> @compute_pick.register(StemContainer)
> def _(container, event):
> sel = compute_pick(container.markerline, event)
> if sel:
> return sel
> idx_sel = min(filter(lambda idx_sel: idx_sel[1] is not None,
> ((idx, compute_pick(line, event))
> > for idx, line in
> > enumerate(container.stemlines))),
> key=lambda idx_sel: idx_sel[1].dist, default=None)
> E TypeError: 'LineCollection' object is not iterable
>
> mplcursors/_pick_info.py:469: TypeError
> =============== 6 failed, 49 passed, 1 skipped in 27.28 seconds
> ================
> E: pybuild pybuild:352: test: plugin distutils failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build; python3.8 -m pytest
> tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.8
> returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2020/08/02/mplcursors_0.3-2_unstable.log
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.
--- End Message ---