On 9 Jul 2014 17:14, "Ethan Furman" <et...@stoneleaf.us> wrote: > > On 07/09/2014 02:42 PM, Ben Hoyt wrote: >>> >>> >>> Okay, so using that [no platform specific] logic we should head over to the os module and remove: >>> >>> >>> ctermid, getenv, getegid... >>> >>> Okay, I'm tired of typing, but that list is not even half-way through the os >>> page, and those are all methods or attributes that are not available on >>> either Windows or Unix or some flavors of Unix. >> >> >> True, is this really the precedent we want to *aim for*. listdir() is >> cross-platform, > > > and listdir has serious performance issues, which is why you developed scandir. > >>> Oh, and all those [snipped] upper-case attributes? Yup, documented. And when we >>> >>> don't document it ourselves we often refer readers to their system >>> documentation because Python does not, in fact, return exactly the same >>> results on all platforms -- particularly when calling into the OS. >> >> >> But again, why a worse, less cross-platform API when a simple, >> cross-platform one is a method call away? > > > For the same reason we don't use code that makes threaded behavior better, but kills the single thread application. > > If the programmer would rather have consistency on all platforms rather than performance on the one being used, `info='lstat'` is the option to use. > > I like the 'onerror' API better primarily because it gives a single point to deal with the errors. This has at least a couple advantages: > > - less duplication of code: in the tree_size example, the error > handling is duplicated twice > > - readablity: with the error handling in a separate routine, one > does not have to jump around the try/except blocks looking for > what happens if there are no errors
The "onerror" approach can also deal with readdir failing, which the PEP currently glosses over. I'm somewhat inclined towards the current approach in the PEP, but I'd like to see an explanation of two aspects: 1. How a scandir variant with an 'onerror' option could be implemented given the version in the PEP 2. How the existing scandir module handles the 'onerror' parameter to its directory walking function Regards, Nick. > > -- > ~Ethan~ > > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com