Skip to content

Commit 6eae56b

Browse files
authored
Merge pull request #11305 from anntzer/duplicate-warning
Reuse the noninteractivity warning from Figure.show in _Backend.show.
2 parents 0231fae + 6cf8450 commit 6eae56b

File tree

3 files changed

+9
-18
lines changed

3 files changed

+9
-18
lines changed

lib/matplotlib/backend_bases.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -185,14 +185,8 @@ def show(cls, block=None):
185185
if not managers:
186186
return
187187
for manager in managers:
188-
try:
189-
manager.show()
190-
except NonGuiException:
191-
warnings.warn(
192-
('matplotlib is currently using %s, which is a ' +
193-
'non-GUI backend, so cannot show the figure.')
194-
% get_backend())
195-
return
188+
# Emits a warning if the backend is non-interactive.
189+
manager.canvas.figure.show()
196190
if cls.mainloop is None:
197191
return
198192
if block is None:

lib/matplotlib/figure.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -439,10 +439,9 @@ def show(self, warn=True):
439439
except NonGuiException:
440440
pass
441441
if warn:
442-
warnings.warn(
443-
('matplotlib is currently using %s, which is a ' +
444-
'non-GUI backend, so cannot show the figure.')
445-
% get_backend())
442+
warnings.warn('Matplotlib is currently using %s, which is a '
443+
'non-GUI backend, so cannot show the figure.'
444+
% get_backend())
446445

447446
def _get_axes(self):
448447
return self._axstack.as_list()

lib/matplotlib/tests/test_backend_bases.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,11 @@ def test_non_gui_warning():
6969
with pytest.warns(UserWarning) as rec:
7070
plt.show()
7171
assert len(rec) == 1
72-
assert 'matplotlib is currently using pdf, ' \
73-
'which is a non-GUI backend' \
74-
in str(rec[0].message)
72+
assert ('Matplotlib is currently using pdf, which is a non-GUI backend'
73+
in str(rec[0].message))
7574

7675
with pytest.warns(UserWarning) as rec:
7776
plt.gcf().show()
7877
assert len(rec) == 1
79-
assert 'matplotlib is currently using pdf, ' \
80-
'which is a non-GUI backend' \
81-
in str(rec[0].message)
78+
assert ('Matplotlib is currently using pdf, which is a non-GUI backend'
79+
in str(rec[0].message))

0 commit comments

Comments
 (0)