Failed test due to matplotlib deprecation of interactive_bk #1623
Open
Description
opened on Jul 9, 2024
Environment data
- debugpy version: 1.6.7
- OS and version: WSL 2, Ubuntu
- Python version (& distribution if applicable, e.g. Anaconda): 3.11.5
- Using VS Code or Visual Studio: VS Code
Actual behavior
Running a single debug test fails from the following deprecation warning. This is from the changes in matplotlib/matplotlib#27719 and matplotlib/matplotlib#27948
(mpl-dev) scott@DESKTOP-M5S4AGS:/mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib$ cd /mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib ; /usr/bin/env /home/scott/anaconda3/envs/mpl-dev/bin/python /home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/adapter/../../debugpy/launcher 59141 -- /home/scott/.vscode-server/extensions/ms-python.python-2024.11.2024070901-linux-x64/python_files/vscode_pytest/run_pytest_script.py --rootdir=/mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib --capture=no
Received JSON data in run script
Running pytest with args: ['-p', 'vscode_pytest', '--rootdir=/mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib', '--capture=no', '/mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py::test_axes3d_isometric[png]']
Plugin info[vscode-pytest]: Checking if rootdir is a child of a symlink.
Checking for symlink parent starting at current path: /mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib
============================= test session starts ==============================
platform linux -- Python 3.12.4, pytest-8.2.2, pluggy-1.5.0
rootdir: /mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib
configfile: pyproject.toml
plugins: cov-5.0.0, xdist-3.6.1, rerunfailures-14.0, timeout-2.3.1
collected 1 item
lib/mpl_toolkits/mplot3d/tests/test_axes3d.py Traceback (most recent call last):
File "/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py", line 988, in trace_dispatch
self.do_wait_suspend(thread, frame, event, arg)
File "/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py", line 165, in do_wait_suspend
self._args[0].do_wait_suspend(*args, **kwargs)
File "/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydevd.py", line 2070, in do_wait_suspend
keep_suspended = self._do_wait_suspend(thread, frame, event, arg, suspend_type, from_this_thread, frames_tracker)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydevd.py", line 2093, in _do_wait_suspend
self._activate_gui_if_needed()
File "/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydevd.py", line 1592, in _activate_gui_if_needed
activate_function()
File "/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydevd.py", line 1576, in <lambda>
self.mpl_modules_for_patching = {"matplotlib": lambda: activate_matplotlib(do_enable_gui),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py", line 94, in activate_matplotlib
is_interactive = is_interactive_backend(backend)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py", line 55, in is_interactive_backend
from matplotlib.rcsetup import interactive_bk, non_interactive_bk # @UnresolvedImport
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib/lib/matplotlib/_api/__init__.py", line 216, in __getattr__
return props[name].__get__(instance)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib/lib/matplotlib/_api/deprecation.py", line 161, in __get__
emit_warning()
File "/mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib/lib/matplotlib/_api/deprecation.py", line 196, in emit_warning
warn_deprecated(
File "/mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib/lib/matplotlib/_api/deprecation.py", line 99, in warn_deprecated
warn_external(warning, category=MatplotlibDeprecationWarning)
File "/mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib/lib/matplotlib/_api/__init__.py", line 381, in warn_external
warnings.warn(message, category, stacklevel)
matplotlib._api.deprecation.MatplotlibDeprecationWarning: The interactive_bk attribute was deprecated in Matplotlib 3.9 and will be removed in 3.11. Use ``matplotlib.backends.backend_registry.list_builtin(matplotlib.backends.BackendFilter.INTERACTIVE)`` instead.
F
=================================== FAILURES ===================================
__________________________ test_axes3d_isometric[png] __________________________
args = ()
kwds = {'extension': 'png', 'request': <FixtureRequest for <Function test_axes3d_isometric[png]>>}
@wraps(func)
def inner(*args, **kwds):
with self._recreate_cm():
> return func(*args, **kwds)
/home/scott/anaconda3/envs/mpl-dev/lib/python3.12/contextlib.py:81:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
lib/matplotlib/figure.py:3398: in savefig
self.canvas.print_figure(fname, **kwargs)
lib/matplotlib/backend_bases.py:2173: in print_figure
result = print_method(
lib/matplotlib/backend_bases.py:2023: in <lambda>
print_method = functools.wraps(meth)(lambda *args, **kwargs: meth(
lib/matplotlib/backends/backend_agg.py:496: in print_png
self._print_pil(filename_or_obj, "png", pil_kwargs, metadata)
lib/matplotlib/backends/backend_agg.py:444: in _print_pil
FigureCanvasAgg.draw(self)
lib/matplotlib/backends/backend_agg.py:387: in draw
self.figure.draw(self.renderer)
lib/matplotlib/artist.py:95: in draw_wrapper
result = draw(artist, renderer, *args, **kwargs)
lib/matplotlib/artist.py:72: in draw_wrapper
return draw(artist, renderer)
lib/matplotlib/figure.py:3165: in draw
mimage._draw_list_compositing_images(
lib/matplotlib/image.py:132: in _draw_list_compositing_images
a.draw(renderer)
lib/matplotlib/artist.py:72: in draw_wrapper
return draw(artist, renderer)
lib/mpl_toolkits/mplot3d/axes3d.py:469: in draw
super().draw(renderer)
lib/matplotlib/artist.py:72: in draw_wrapper
return draw(artist, renderer)
lib/matplotlib/axes/_base.py:3147: in draw
mimage._draw_list_compositing_images(
lib/matplotlib/image.py:132: in _draw_list_compositing_images
a.draw(renderer)
lib/matplotlib/artist.py:72: in draw_wrapper
return draw(artist, renderer)
lib/mpl_toolkits/mplot3d/art3d.py:270: in draw
xs, ys, zs, tis = proj3d.proj_transform_clip(xs3d, ys3d, zs3d, self.axes.M)
/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py:988: in trace_dispatch
self.do_wait_suspend(thread, frame, event, arg)
/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py:165: in do_wait_suspend
self._args[0].do_wait_suspend(*args, **kwargs)
/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydevd.py:2070: in do_wait_suspend
keep_suspended = self._do_wait_suspend(thread, frame, event, arg, suspend_type, from_this_thread, frames_tracker)
/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydevd.py:2093: in _do_wait_suspend
self._activate_gui_if_needed()
/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydevd.py:1592: in _activate_gui_if_needed
activate_function()
/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydevd.py:1576: in <lambda>
self.mpl_modules_for_patching = {"matplotlib": lambda: activate_matplotlib(do_enable_gui),
/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py:94: in activate_matplotlib
is_interactive = is_interactive_backend(backend)
/home/scott/.vscode-server/extensions/ms-python.debugpy-2024.7.11591012/bundled/libs/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py:55: in is_interactive_backend
from matplotlib.rcsetup import interactive_bk, non_interactive_bk # @UnresolvedImport
lib/matplotlib/_api/__init__.py:216: in __getattr__
return props[name].__get__(instance)
lib/matplotlib/_api/deprecation.py:161: in __get__
emit_warning()
lib/matplotlib/_api/deprecation.py:196: in emit_warning
warn_deprecated(
lib/matplotlib/_api/deprecation.py:99: in warn_deprecated
warn_external(warning, category=MatplotlibDeprecationWarning)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
message = MatplotlibDeprecationWarning('The interactive_bk attribute was deprecated in Matplotlib 3.9 and will be removed in 3.11. Use ``matplotlib.backends.backend_registry.list_builtin(matplotlib.backends.BackendFilter.INTERACTIVE)`` instead.')
category = <class 'matplotlib._api.deprecation.MatplotlibDeprecationWarning'>
def warn_external(message, category=None):
"""
`warnings.warn` wrapper that sets *stacklevel* to "outside Matplotlib".
The original emitter of the warning can be obtained by patching this
function back to `warnings.warn`, i.e. ``_api.warn_external =
warnings.warn`` (or ``functools.partial(warnings.warn, stacklevel=2)``,
etc.).
"""
frame = sys._getframe()
for stacklevel in itertools.count(1):
if frame is None:
# when called in embedded context may hit frame is None
break
if not re.match(r"\A(matplotlib|mpl_toolkits)(\Z|\.(?!tests\.))",
# Work around sphinx-gallery not setting __name__.
frame.f_globals.get("__name__", "")):
break
frame = frame.f_back
# preemptively break reference cycle between locals and the frame
del frame
> warnings.warn(message, category, stacklevel)
E matplotlib._api.deprecation.MatplotlibDeprecationWarning: The interactive_bk attribute was deprecated in Matplotlib 3.9 and will be removed in 3.11. Use ``matplotlib.backends.backend_registry.list_builtin(matplotlib.backends.BackendFilter.INTERACTIVE)`` instead.
lib/matplotlib/_api/__init__.py:381: MatplotlibDeprecationWarning
=========================== short test summary info ============================
FAILED lib/mpl_toolkits/mplot3d/tests/test_axes3d.py::test_axes3d_isometric[png]
============================== 1 failed in 4.20s ===============================
Expected behavior
Steps to reproduce:
- Install matplotlib >= 3.9
- Run a single test in debug mode
Metadata
Assignees
Labels
No labels
Activity