comparison piecrust/osutil.py @ 546:6ef89b31ddda 2.0.0b3

internal: Fix a severe bug with the file-system wrappers on OSX. `os.walk` is expected to support modifying its return values `dirnames` and `filenames` so that you can filter out items that need to be iterated upon. I was previously returning a different list in the wrappers, which means filtering was completely broken.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 01 Aug 2015 08:09:53 -0700
parents 6f1f45fb7790
children a4ac464a45b3
comparison
equal deleted inserted replaced
545:1856e7aa6ce8 546:6ef89b31ddda
11 11
12 if sys.platform == 'darwin': 12 if sys.platform == 'darwin':
13 def _walk(top, **kwargs): 13 def _walk(top, **kwargs):
14 for dirpath, dirnames, filenames in os.walk(top, **kwargs): 14 for dirpath, dirnames, filenames in os.walk(top, **kwargs):
15 dirpath = _from_osx_fs(dirpath) 15 dirpath = _from_osx_fs(dirpath)
16 dirnames = list(map(_from_osx_fs, dirnames)) 16 dirnames[:] = list(map(_from_osx_fs, dirnames))
17 filenames = list(map(_from_osx_fs, filenames)) 17 filenames[:] = list(map(_from_osx_fs, filenames))
18 yield dirpath, dirnames, filenames 18 yield dirpath, dirnames, filenames
19 19
20 def _listdir(path='.'): 20 def _listdir(path='.'):
21 for name in os.listdir(path): 21 for name in os.listdir(path):
22 name = _from_osx_fs(name) 22 name = _from_osx_fs(name)