Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7e84064

Browse files
authored
Merge pull request #10761 from matplotlib/auto-backport-of-pr-10754
Backport PR #10754 on branch v2.2.x
2 parents a6cdd0f + 76f0285 commit 7e84064

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

lib/matplotlib/backend_bases.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2159,6 +2159,8 @@ def print_figure(self, filename, dpi=None, facecolor=None, edgecolor=None,
21592159

21602160
if format is None:
21612161
# get format from filename, or from backend's default filetype
2162+
if isinstance(filename, getattr(os, "PathLike", ())):
2163+
filename = os.fspath(filename)
21622164
if isinstance(filename, six.string_types):
21632165
format = os.path.splitext(filename)[1][1:]
21642166
if format is None or format == '':

lib/matplotlib/tests/test_figure.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from __future__ import absolute_import, division, print_function
22

3-
import os
43
import sys
54
import warnings
65

@@ -379,6 +378,11 @@ def test_figure_repr():
379378

380379
@pytest.mark.skipif(sys.version_info < (3, 6), reason="requires Python 3.6+")
381380
@pytest.mark.parametrize("fmt", ["png", "pdf", "ps", "eps", "svg"])
382-
def test_fspath(fmt):
381+
def test_fspath(fmt, tmpdir):
383382
from pathlib import Path
384-
plt.savefig(Path(os.devnull), format=fmt)
383+
out = Path(tmpdir, "test.{}".format(fmt))
384+
plt.savefig(out)
385+
with out.open("rb") as file:
386+
# All the supported formats include the format name (case-insensitive)
387+
# in the first 100 bytes.
388+
assert fmt.encode("ascii") in file.read(100).lower()

0 commit comments

Comments
 (0)