|
35 | 35 | from functools import lru_cache |
36 | 36 | import json |
37 | 37 | import os |
| 38 | +from pathlib import Path |
38 | 39 | import subprocess |
39 | 40 | import sys |
40 | 41 | from threading import Timer |
@@ -150,12 +151,13 @@ def get_fontext_synonyms(fontext): |
150 | 151 |
|
151 | 152 | def list_fonts(directory, extensions): |
152 | 153 | """ |
153 | | - Return a list of all fonts matching any of the extensions, |
154 | | - possibly upper-cased, found recursively under the directory. |
| 154 | + Return a list of all fonts matching any of the extensions, found |
| 155 | + recursively under the directory. |
155 | 156 | """ |
156 | | - pattern = ';'.join(['*.%s;*.%s' % (ext, ext.upper()) |
157 | | - for ext in extensions]) |
158 | | - return cbook.listFiles(directory, pattern) |
| 157 | + extensions = ["." + ext for ext in extensions] |
| 158 | + return [str(path) |
| 159 | + for path in filter(Path.is_file, Path(directory).glob("**/*.*")) |
| 160 | + if path.suffix in extensions] |
159 | 161 |
|
160 | 162 |
|
161 | 163 | def win32FontDirectory(): |
@@ -231,21 +233,13 @@ def win32InstalledFonts(directory=None, fontext='ttf'): |
231 | 233 |
|
232 | 234 |
|
233 | 235 | def OSXInstalledFonts(directories=None, fontext='ttf'): |
234 | | - """ |
235 | | - Get list of font files on OS X - ignores font suffix by default. |
236 | | - """ |
| 236 | + """Get list of font files on OS X.""" |
237 | 237 | if directories is None: |
238 | 238 | directories = OSXFontDirectories |
239 | | - |
240 | | - fontext = get_fontext_synonyms(fontext) |
241 | | - |
242 | | - files = [] |
243 | | - for path in directories: |
244 | | - if fontext is None: |
245 | | - files.extend(cbook.listFiles(path, '*')) |
246 | | - else: |
247 | | - files.extend(list_fonts(path, fontext)) |
248 | | - return files |
| 239 | + return [path |
| 240 | + for directory in directories |
| 241 | + for fontext in get_fontext_synonyms(fontext) |
| 242 | + for path in list_fonts(directory, fontext)] |
249 | 243 |
|
250 | 244 |
|
251 | 245 | @lru_cache() |
|
0 commit comments