Choice of complex buffer protocol format intentional break with PEP?

Why “too late”? This is obviously incompatible with PEP 3118 and also with NumPy’s long-standing usage of “Zd” and “Zf”.

If you claim to be compatible with a spec (a PEP even!) and you’re not, then it’s a bug that needs fixing.

Are you kidding me? This PEP is implemented by many third-party packages (including, of course, the ever-popular NumPy). It is in broad use every day by tens of millions of users at least. It sits at the heart of the Python data ecosystem and is the fundamental building block that allows zero-copy interoperability between all those packages.

That some CPython developers are not aware of this is not a reason to declare this PEP “old and irrelevant”.

What is old and should probably be declared irrelevant, however, is the standard library array module. Short of deprecating and removing it, perhaps it should stand as a policy that any proposed improvement to the array module should first be submitted to the attention of NumPy developers before being accepted. This would avoid mishaps like this.

2 Likes