> More broadly, it is only necessary to reject an argument type at the
> __array_function__ level if it defines __array_function__ itself, because
> that’s the only case where it would make a difference to return
> NotImplemented rather than trying (and failing) to call the overriden
> function implementation.
>

Yes, this makes sense -- these are the only types that could possibly
change the outcome if the class now called fails to produce a result.
Indeed, that reasoning makes it logical that `ndarray` itself is not
present even though it defines `__array_ufunc__` - we know it cannot handle
anything with a `__array_ufunc__` implementation.

Hameer, is Stephan's argument convincing to you too? If so, I'll close the
PR.

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

Reply via email to