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

> 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
between:
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.)
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to