summaryrefslogtreecommitdiffstats
path: root/Lib/importlib/readers.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/importlib/readers.py')
-rw-r--r--Lib/importlib/readers.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/Lib/importlib/readers.py b/Lib/importlib/readers.py
index 41089c0..b470a20 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')