|
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