If you're talking about non-contiguity due to multi-dimensionality (or strided slicing), PyBuffer already internally supports that (and thus memoryviews, stdlib array, etc) - [0], is that "pure Python" enough?
[0] https://docs.python.org/3/c-api/buffer.html#c.Py_buffer.stri...