PEP 3118 Buffer Protocol Support for Series
Just a POC and not sure we want this but was curious nonetheless...

This extension module allows a Series to conform to the buffer protocol, which makes it readable / writeable through memoryviews. Right now in places like groupby we always in user code extract out the underlying array and pass that through Cython, which this in theory could centralize while helping third party code that may use this as well

Getting this to work with a DataFrame would be the bigger win but also takes more effort, so leaving that for another day
Wow, when I saw the title I thought this would be about correctly handling memoryviews in the constructor.

I'm not wild about the to_numpy usage.  In general we dont know if that is going to be lossy and/or expensive.

If there is a way to get our cython funcs to work directly on DTA/TDA/PA without casting to i8, that I could get excited about. The datetimelike arrays still use numpy for strorage correct? Certainly open to alternate ways besides `to_numpy` but it needs to be low level storage and the advantage of numpy arrays currently is we can just dispatch to them as they already implement this Surprised this cause build failures like:

https://dev.azure.com/pandas-dev/pandas/_build/results?buildId=23988&view=logs&j=a3a13ea8-7cf0-5bdb-71bb-6ac8830ae35c&t=fabfbac7-9f65-559f-bcbb-d243c750d1d9&l=244

Must be changing the semantics of assignment somehow if a Series on the rhs was previously not using the Buffer protocol but now is. Have to investigate further > ValueError: cannot include dtype 'm' in a buffer

That would correspond to a timedelta64 dtype, which I dont think cython has a concept of. Does this just make `Series.values` available, and the index is ignored?

What happens for EA-backed Series that don't / can't implement the buffer protocol?  This current implementation just calls `to_numpy` and uses whatever buffer that exposes, but yea if we evolve and go another path in the future would have to think about how EAs could use, if at all. 

It does need to be a platform native representation of the data which maybe not all EAs can produce; if we switched off of `to_numpy` would probably need to raise where not applicable Come back to this one later; might even need to do upstream. clearing queue for now