On 28 February 2018 at 03:15, Ethan Furman <ethan@stoneleaf.us> wrote:
On 02/26/2018 11:34 PM, Elias Zamaria wrote:

I don't know how I would feel working on something so general, of use to so many people for lots of different purposes.
Do I know enough about all of the use cases and what everyone wants? I am not completely against it but I'd need to
think about it.

Part of the PEP writing process is asking for and collecting use-cases;  if possible, looking at other code projects for use-cases is also useful.

Time needed can vary widely depending on the subject; if I recall correctly, PEP 409 only took a few days, while PEP 435 took several weeks.  PEP 467 has already gone through a few iterations, so hopefully not too much more time is required.

One of the main developments not yet accounted for in the PEP is the fact that `memoryview` now supports efficient bytes-based iteration over arbitrary buffer-exporting objects:

    def iterbytes(obj):
        with memoryview(obj) as m:
            return iter(m.cast('c'))

This means that aspect of PEP 467 will need to lean more heavily on discoverability arguments (since the above approach isn't obvious at all unless you're already very familiar with the use of `memoryview`), since the runtime benefit from avoiding the upfront cost of allocating and initialising two memoryview objects by using a custom iterator type instead is likely to be fairly small.

Cheers,
Nick.

--
Nick Coghlan   |   ncoghlan@gmail.com   |   Brisbane, Australia