@@ -171,23 +171,23 @@ def rm_rf(path: Path) -> None:
171
171
shutil .rmtree (str (path ), onerror = onerror )
172
172
173
173
174
- def find_prefixed (root : Path , prefix : str ) -> Iterator [Path ]:
174
+ def find_prefixed (root : Path , prefix : str ) -> Iterator ["os.DirEntry[str]" ]:
175
175
"""Find all elements in root that begin with the prefix, case insensitive."""
176
176
l_prefix = prefix .lower ()
177
- for x in root . iterdir ( ):
177
+ for x in os . scandir ( root ):
178
178
if x .name .lower ().startswith (l_prefix ):
179
179
yield x
180
180
181
181
182
- def extract_suffixes (iter : Iterable [PurePath ], prefix : str ) -> Iterator [str ]:
182
+ def extract_suffixes (iter : Iterable ["os.DirEntry[str]" ], prefix : str ) -> Iterator [str ]:
183
183
"""Return the parts of the paths following the prefix.
184
184
185
185
:param iter: Iterator over path names.
186
186
:param prefix: Expected prefix of the path names.
187
187
"""
188
188
p_len = len (prefix )
189
- for p in iter :
190
- yield p .name [p_len :]
189
+ for entry in iter :
190
+ yield entry .name [p_len :]
191
191
192
192
193
193
def find_suffixes (root : Path , prefix : str ) -> Iterator [str ]:
@@ -346,12 +346,12 @@ def cleanup_candidates(root: Path, prefix: str, keep: int) -> Iterator[Path]:
346
346
"""List candidates for numbered directories to be removed - follows py.path."""
347
347
max_existing = max (map (parse_num , find_suffixes (root , prefix )), default = - 1 )
348
348
max_delete = max_existing - keep
349
- paths = find_prefixed (root , prefix )
350
- paths , paths2 = itertools .tee (paths )
351
- numbers = map (parse_num , extract_suffixes (paths2 , prefix ))
352
- for path , number in zip (paths , numbers ):
349
+ entries = find_prefixed (root , prefix )
350
+ entries , entries2 = itertools .tee (entries )
351
+ numbers = map (parse_num , extract_suffixes (entries2 , prefix ))
352
+ for entry , number in zip (entries , numbers ):
353
353
if number <= max_delete :
354
- yield path
354
+ yield Path ( entry )
355
355
356
356
357
357
def cleanup_dead_symlinks (root : Path ):
0 commit comments