mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +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):
 | 
			
		||||
    assert _isrecursive(pattern)
 | 
			
		||||
    if not dirname or _isdir(dirname, dir_fd):
 | 
			
		||||
        yield pattern[:0]
 | 
			
		||||
    yield from _rlistdir(dirname, dir_fd, dironly,
 | 
			
		||||
                         include_hidden=include_hidden)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -333,6 +333,17 @@ def test_recursive_glob(self):
 | 
			
		|||
            eq(glob.glob('**', recursive=True, include_hidden=True),
 | 
			
		||||
               [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):
 | 
			
		||||
        depth = 30
 | 
			
		||||
        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