mirror of
https://github.com/python/cpython.git
synced 2025-09-10 02:36:56 +00:00
gh-79382: Fix recursive glob() with trailing "**" (GH-115134)
Trailing "**" no longer allows to match files and non-existing paths in recursive glob().
This commit is contained in:
parent
573acb30f2
commit
aeffc7f895
3 changed files with 15 additions and 1 deletions
|
@ -132,6 +132,7 @@ def glob1(dirname, pattern):
|
||||||
|
|
||||||
def _glob2(dirname, pattern, dir_fd, dironly, include_hidden=False):
|
def _glob2(dirname, pattern, dir_fd, dironly, include_hidden=False):
|
||||||
assert _isrecursive(pattern)
|
assert _isrecursive(pattern)
|
||||||
|
if not dirname or _isdir(dirname, dir_fd):
|
||||||
yield pattern[:0]
|
yield pattern[:0]
|
||||||
yield from _rlistdir(dirname, dir_fd, dironly,
|
yield from _rlistdir(dirname, dir_fd, dironly,
|
||||||
include_hidden=include_hidden)
|
include_hidden=include_hidden)
|
||||||
|
|
|
@ -333,6 +333,17 @@ class GlobTests(unittest.TestCase):
|
||||||
eq(glob.glob('**', recursive=True, include_hidden=True),
|
eq(glob.glob('**', recursive=True, include_hidden=True),
|
||||||
[join(*i) for i in full+rec])
|
[join(*i) for i in full+rec])
|
||||||
|
|
||||||
|
def test_glob_non_directory(self):
|
||||||
|
eq = self.assertSequencesEqual_noorder
|
||||||
|
eq(self.rglob('EF'), self.joins(('EF',)))
|
||||||
|
eq(self.rglob('EF', ''), [])
|
||||||
|
eq(self.rglob('EF', '*'), [])
|
||||||
|
eq(self.rglob('EF', '**'), [])
|
||||||
|
eq(self.rglob('nonexistent'), [])
|
||||||
|
eq(self.rglob('nonexistent', ''), [])
|
||||||
|
eq(self.rglob('nonexistent', '*'), [])
|
||||||
|
eq(self.rglob('nonexistent', '**'), [])
|
||||||
|
|
||||||
def test_glob_many_open_files(self):
|
def test_glob_many_open_files(self):
|
||||||
depth = 30
|
depth = 30
|
||||||
base = os.path.join(self.tempdir, 'deep')
|
base = os.path.join(self.tempdir, 'deep')
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Trailing ``**`` no longer allows to match files and non-existing paths in
|
||||||
|
recursive :func:`~glob.glob`.
|
Loading…
Add table
Add a link
Reference in a new issue