I was wondering if we should introduce a new `np.types` namespace. The main reason is that we have the DType classes, that most users don't need to worry about. These mirror the scalar classes, but getting them is weird currently.
I never wanted to put these in the top-level (because I feel they probably won't be used much day to day). That would be thing like:
* np.types.IntDType, np.types.Int64DType (or maybe without dtype) * np.types.NumberDType (an abstract DType) * np.types.InexactDType * ... * np.types.DTypeMeta (the metaclass used, just to have it somewhere)
Maybe there are some more types that we could use a public entrypoint for (e.g. the type used by array-function dispatched functions or `np.ufunc` could in principle move also).
What do you think? I don't really have a good idea for an alternative but at some point not making these nicely public is not great...
(I will note that the DType classes do get printed sometimes in error messages.)