[Python-Dev] PEP 471 -- os.scandir() function -- a better and faster directory iterator (original) (raw)

Devin Jeanpierre jeanpierreda at gmail.com
Tue Jul 1 04:17:00 CEST 2014


The proposal I was replying to was that:

Even if we add a .refresh(), the latter two items mean that you can't avoid doing extra work (either too much on windows, or too much on linux), if you want only a subset of the files' lstat info.

-- Devin

P.S. your mail client's quoting breaks my mail client (gmail)'s quoting.

On Mon, Jun 30, 2014 at 7:04 PM, Glenn Linderman <v+python at g.nevcal.com> wrote:

On 6/30/2014 4:25 PM, Devin Jeanpierre wrote:

On Mon, Jun 30, 2014 at 3:07 PM, Tim Delaney <timothy.c.delaney at gmail.com> wrote: On 1 July 2014 03:05, Ben Hoyt <benhoyt at gmail.com> wrote: So, here's my alternative proposal: add an "ensurelstat" flag to scandir() itself, and don't have any methods on DirEntry, only attributes. ... Most importantly, regardless of platform, the cached stat result (if not None) would reflect the state of the entry at the time the directory was scanned, rather than at some arbitrary later point in time when lstat() was first called on the DirEntry object. I'm torn between whether I'd prefer the stat fields to be populated on Windows if ensurelstat=False or not. There are good arguments each way, but overall I'm inclining towards having it consistent with POSIX - don't populate them unless ensurelstat=True. +0 for stat fields to be None on all platforms unless ensurelstat=True. This won't work well if lstat info is only needed for some entries. Is that a common use-case? It was mentioned earlier in the thread.

If it is, use ensurelstat=False, and use the proposed (by me) .refresh() API to update the data for those that need it.


Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/jeanpierreda%40gmail.com



More information about the Python-Dev mailing list