Open
Description
In 2.0 we made a lot of progress in ensuring passing dtype=foo or .astype(foo) actually returned the requested dtype rather than silently giving something else. bytes and str are the main remaining cases where we silently do something else (cast to object, but not as consistently as intended).
Instead, let's interpret dtype=str
as string[pyarrow]
and dtype=bytes
as bytes[pyarrow]
(with a deprecation cycle, and once we require pyarrow)