Skip to content

Commit 48b72b8

Browse files
authored
Merge pull request #113 from jaraco/feature/glob-perf
Improve glob performance
2 parents 4cceb49 + 171fa98 commit 48b72b8

File tree

3 files changed

+4
-2
lines changed

3 files changed

+4
-2
lines changed

newsfragments/106.feature.rst

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Bypass ZipFile.namelist in glob for better performance.

tests/test_complexity.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def test_glob_depth(self):
8585
max_n=100,
8686
min_n=1,
8787
)
88-
assert best <= big_o.complexities.Quadratic
88+
assert best <= big_o.complexities.Linear
8989

9090
@pytest.mark.flaky
9191
def test_glob_width(self):

zipp/__init__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,8 @@ def glob(self, pattern):
402402
prefix = re.escape(self.at)
403403
tr = Translator(seps='/')
404404
matches = re.compile(prefix + tr.translate(pattern)).fullmatch
405-
return map(self._next, filter(matches, self.root.namelist()))
405+
names = (data.filename for data in self.root.filelist)
406+
return map(self._next, filter(matches, names))
406407

407408
def rglob(self, pattern):
408409
return self.glob(f'**/{pattern}')

0 commit comments

Comments
 (0)