Failed test due to matplotlib deprecation of interactive_bk #1623

Description

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:

  1. Install matplotlib >= 3.9
  2. Run a single test in debug mode

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

      Failed test due to matplotlib deprecation of interactive_bk #1623

      Description

      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:

      1. Install matplotlib >= 3.9
      2. Run a single test in debug mode

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          Failed test due to matplotlib deprecation of interactive_bk #1623

          Description

          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:

          1. Install matplotlib >= 3.9
          2. Run a single test in debug mode

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              Failed test due to matplotlib deprecation of interactive_bk #1623

              Description

              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:

              1. Install matplotlib >= 3.9
              2. Run a single test in debug mode

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  Failed test due to matplotlib deprecation of interactive_bk #1623

                  Description

                  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:

                  1. Install matplotlib >= 3.9
                  2. Run a single test in debug mode

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    Type

                    No type

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      Failed test due to matplotlib deprecation of interactive_bk #1623

                      Description

                      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:

                      1. Install matplotlib >= 3.9
                      2. Run a single test in debug mode

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        Type

                        No type

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          Failed test due to matplotlib deprecation of interactive_bk #1623

                          Description

                          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:

                          1. Install matplotlib >= 3.9
                          2. Run a single test in debug mode

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            Type

                            No type

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              Failed test due to matplotlib deprecation of interactive_bk #1623

                              Description

                              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:

                              1. Install matplotlib >= 3.9
                              2. Run a single test in debug mode

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Type

                                No type

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions