This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年06月25日 04:13 by larry, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| larry.fwalk.dir_fd.1.diff | larry, 2012年06月25日 07:49 | First patch adding dir_fd to os.fwalk(). | review | |
| larry.fwalk.dir_fd.4.diff | larry, 2012年06月25日 10:42 | p a t c h _ f o u r | review | |
| larry.fwalk.and.walk.dir_fd.3.diff | larry, 2012年06月25日 10:43 | Patch 3. May the ghost of Gerrit guide me. | review | |
| Messages (16) | |||
|---|---|---|---|
| msg163886 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 04:13 | |
Consider: should os.fwalk() support dir_fd? I think so. In fact, in retrospect it seems like a bug that os.fwalk *doesn't* already support this. Georg: is this a feature or a bugfix? (Wish I'd thought of this Saturday!) I actually did a little experimenting, and got os.fwalk(fd) to work with very little trouble. os.walk(fd) is harder because the recursive step appends a string to the existing path, and it really needs to be relative to the fd, and there's no way to pass both of those at once with the current signature. It's doable but it would require a separate function for the recursive step that accepted a dir_fd anyway. |
|||
| msg163906 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 07:07 | |
My first cut at a patch. Made the logic in posix_listdir easy to follow, fixed up the docstring and docs. |
|||
| msg163907 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 07:08 | |
Whoops, wrong issue, ignore that. (Meant for #15176, going there now.) |
|||
| msg163909 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 07:49 | |
What I did: * Added dir_fd=None as a keyword only parameter. * Gave top a default of ".". * Passed through dir_fd in two spots--that was all it took! * Made fwalk contingent on os.stat and os.open both being in support_dir_fd, and os.listdir being in support_fd. * Fixed docstring and docs. * Added unit test for using dir_fd. |
|||
| msg163918 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 09:38 | |
Second revision of patch. * Removed os.fwalk from os.supports_dir_fd. As Georg points out, you can't test it. (Well, you can, but only if the test would have succeeded.) * Changed fstat(fd) calls to stat(fd) calls. |
|||
| msg163920 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 09:45 | |
Here's a variant of the patch adding os.walk(dir_fd=) support. I'm not pushing for this. I'm not sure it's a must-have; it seems like a nice-to-have, but we're past the time for nice-to-haves. |
|||
| msg163922 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2012年06月25日 10:10 | |
Larry, please regenerate patch in Mercurial for review. I have some comments. |
|||
| msg163927 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 10:30 | |
Regenerated fwalk(dir_fd=) patch to make Rietveld happy. |
|||
| msg163929 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 10:31 | |
Regenerated walk(dir_fd=) patch to make Rietveld happy. |
|||
| msg163931 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2012年06月25日 10:33 | |
Rietveld is not happy with git diffs. |
|||
| msg163933 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 10:42 | |
Fourth time's the charm. |
|||
| msg163934 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 10:43 | |
What's better than regenerating a bunch of diffs on the off chance that it'll make Rietveld happy? Nothing, that's what. |
|||
| msg163937 - (view) | Author: Georg Brandl (georg.brandl) * (Python committer) | Date: 2012年06月25日 11:16 | |
Let's keep it to fwalk. |
|||
| msg163943 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 11:35 | |
Sure, for 3.3 anyway. I think walk(dir_fd=) should be okay for 3.4. There's a better implementation anyway, where walk() just calls fwalk() and strips the last element off the yielded stuff. But moving on! |
|||
| msg163949 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年06月25日 11:49 | |
New changeset 7bebd9870c75 by Larry Hastings in branch 'default': Issue #15177: Added dir_fd parameter to os.fwalk(). http://hg.python.org/cpython/rev/7bebd9870c75 |
|||
| msg163950 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年06月25日 11:50 | |
While I was at it, I changed the subject to accurately reflect the changeset's final disposition. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:32 | admin | set | github: 59382 |
| 2012年06月25日 11:50:17 | larry | set | status: open -> closed title: Support os.walk(dir_fd=) and os.fwalk(dir_fd=) -> Support os.fwalk(dir_fd=) messages: + msg163950 resolution: fixed stage: needs patch -> resolved |
| 2012年06月25日 11:49:14 | python-dev | set | nosy:
+ python-dev messages: + msg163949 |
| 2012年06月25日 11:35:37 | larry | set | messages: + msg163943 |
| 2012年06月25日 11:16:40 | georg.brandl | set | messages: + msg163937 |
| 2012年06月25日 11:13:51 | larry | set | files: - larry.fwalk.and.walk.dir_fd.2.diff |
| 2012年06月25日 11:13:44 | larry | set | files: - larry.fwalk.dir_fd.3.diff |
| 2012年06月25日 11:13:39 | larry | set | files: - larry.fwalk.and.walk.dir_fd.1.diff |
| 2012年06月25日 11:13:32 | larry | set | files: - larry.fwalk.dir_fd.2.diff |
| 2012年06月25日 10:43:59 | larry | set | files:
+ larry.fwalk.and.walk.dir_fd.3.diff messages: + msg163934 |
| 2012年06月25日 10:42:36 | larry | set | files:
+ larry.fwalk.dir_fd.4.diff messages: + msg163933 |
| 2012年06月25日 10:33:03 | serhiy.storchaka | set | messages: + msg163931 |
| 2012年06月25日 10:31:28 | larry | set | files:
+ larry.fwalk.and.walk.dir_fd.2.diff messages: + msg163929 |
| 2012年06月25日 10:30:39 | larry | set | files:
+ larry.fwalk.dir_fd.3.diff messages: + msg163927 |
| 2012年06月25日 10:10:38 | serhiy.storchaka | set | nosy:
+ serhiy.storchaka messages: + msg163922 |
| 2012年06月25日 09:45:39 | larry | set | files:
+ larry.fwalk.and.walk.dir_fd.1.diff messages: + msg163920 |
| 2012年06月25日 09:38:56 | larry | set | files:
+ larry.fwalk.dir_fd.2.diff messages: + msg163918 |
| 2012年06月25日 09:32:25 | pitrou | set | nosy:
+ neologix versions: + Python 3.4 |
| 2012年06月25日 08:12:36 | georg.brandl | set | files: - larry.listdir.clarification.1.diff |
| 2012年06月25日 07:49:20 | larry | set | files:
+ larry.fwalk.dir_fd.1.diff messages: + msg163909 |
| 2012年06月25日 07:08:30 | larry | set | stage: patch review -> needs patch |
| 2012年06月25日 07:08:21 | larry | set | messages: + msg163907 |
| 2012年06月25日 07:07:58 | larry | set | files:
+ larry.listdir.clarification.1.diff keywords: + patch messages: + msg163906 stage: needs patch -> patch review |
| 2012年06月25日 04:17:11 | Arfrever | set | nosy:
+ Arfrever |
| 2012年06月25日 04:13:21 | larry | create | |