Mercurial > piecrust2
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) |