[Numpy-discussion] NEP: Dispatch Mechanism for NumPy’s high level API

Stephan Hoyer shoyer at gmail.com
Mon Jun 4 02:19:51 EDT 2018

On Sun, Jun 3, 2018 at 9:54 PM Hameer Abbasi <einstein.edison at gmail.com>

> Mixed return values of NotImplementedButCoercible and NotImplemented would
> still result in TypeError, and there would be no second chances for
> overloads.
> I would like to differ with you here: It can be quite useful to have
> second chances for overloads. Think ``np.func(list, custom_array))``: If
> second rounds did not exist, custom_array would need to have a list of
> coercible types (which is not nice IMO).

Even if we did this, we would still want to preserve the equivalence
1. Returning NotImplementedButCoercible from __array_ufunc__ or
__array_function__, and
2. Not implementing __array_ufunc__ or __array_function__ at all.

Changing __array_ufunc__ to do multiple rounds of checks could indeed be
useful in some cases, and you're right that it would not change existing
behavior (in these cases we currently raise TypeError). But I'd rather
leave that for a separate discussion, because it's orthogonal to our
proposal here for __array_function__.

(Personally, I don't think it would be worth the additional complexity.)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20180603/f1e34a66/attachment.html>

More information about the NumPy-Discussion mailing list