From e8006163923564ea04f745a289e079b80afc6db8 Mon Sep 17 00:00:00 2001 From: Croadden Date: Tue, 26 Apr 2022 20:32:16 +0200 Subject: [PATCH] skip sub directories when finding fonts on windows Closes #22859 Co-authored-by: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> --- lib/matplotlib/font_manager.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/font_manager.py b/lib/matplotlib/font_manager.py index 57c57667206a..5a23960fc46b 100644 --- a/lib/matplotlib/font_manager.py +++ b/lib/matplotlib/font_manager.py @@ -196,11 +196,16 @@ def list_fonts(directory, extensions): recursively under the directory. """ extensions = ["." + ext for ext in extensions] - return [os.path.join(dirpath, filename) - # os.walk ignores access errors, unlike Path.glob. - for dirpath, _, filenames in os.walk(directory) - for filename in filenames - if Path(filename).suffix.lower() in extensions] + if sys.platform == 'win32' and directory == win32FontDirectory(): + return [os.path.join(directory, filename) + for filename in os.listdir(directory) + if os.path.isfile(filename)] + else: + return [os.path.join(dirpath, filename) + # os.walk ignores access errors, unlike Path.glob. + for dirpath, _, filenames in os.walk(directory) + for filename in filenames + if Path(filename).suffix.lower() in extensions] def win32FontDirectory():