Thanks very much for looking into this!

> The reason is that when the "kind" and "itemsize" and "byte order" are
> identical, the numpy code decides that data types can be cast (because
> they are equivalent). So basically, the "kind" must not be equal unless
> the "type"/dtype only differs in precision or similar.
> 
> (The relevant code is in multiarraymodule.c in PyArray_EquivTypes)

That makes sense, and explains why the cast-less coercion takes place for some 
type pairs and not for others.

> Frankly, I do not think there is any, because nobody ever created many
> types (there is only quaternions and rationals publicly available).

OK.  I'm a bit surprised to hear this, as the API for adding dtypes is actually 
rather straightforward!

For now, then, I will stick with my current scheme of assigning successive kind 
values to my dtypes, and hope for the best when running with other extension 
dtypes (which, it seems, may be unlikely).


_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to