diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2021-07-29 21:05:05 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-29 21:05:05 -0400 |
commit | aaa83cdfab6817446285e631232f64b394ac6791 (patch) | |
tree | d41195f1412a533b1c7333b99adcc77f171329a1 /Lib/importlib/readers.py | |
parent | 851cca8c22795a2f143ad5ebc10adab3c7784ad0 (diff) | |
download | cpython-git-aaa83cdfab6817446285e631232f64b394ac6791.tar.gz |
bpo-44771: Apply changes from importlib_resources 5.2.1 (GH-27436)
* bpo-44771: Apply changes from importlib_resources@3b24bd6307
* Add blurb
* Exclude namespacedata01 from eol conversion.
Diffstat (limited to 'Lib/importlib/readers.py')
-rw-r--r-- | Lib/importlib/readers.py | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/Lib/importlib/readers.py b/Lib/importlib/readers.py index 41089c071d..b470a2062b 100644 --- a/Lib/importlib/readers.py +++ b/Lib/importlib/readers.py @@ -1,8 +1,12 @@ import collections -import zipfile +import operator import pathlib +import zipfile + from . import abc +from ._itertools import unique_everseen + def remove_duplicates(items): return iter(collections.OrderedDict.fromkeys(items)) @@ -63,13 +67,8 @@ class MultiplexedPath(abc.Traversable): raise NotADirectoryError('MultiplexedPath only supports directories') def iterdir(self): - visited = [] - for path in self._paths: - for file in path.iterdir(): - if file.name in visited: - continue - visited.append(file.name) - yield file + files = (file for path in self._paths for file in path.iterdir()) + return unique_everseen(files, key=operator.attrgetter('name')) def read_bytes(self): raise FileNotFoundError(f'{self} is not a file') |