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.

Reply via email to