What's the difference between np.concatenate.__numpy_implementation__(...)
and np.ndarray.__array_function__(np.concatenate, ...) ? More generally, I guess I'm not quite clear on how to think about what the "no dispatch" version does, because obviously it doesn't make sense to have *no* dispatch. Instead it's something like "the legacy hard-coded dispatch"? On Mon, Apr 15, 2019, 08:30 Stephan Hoyer <sho...@gmail.com> wrote: > Hi everyone, > > We have a proposed a revision to NEP-18 (__array_function__). The proposal > is for an adding an alias to the non-dispatched version of NumPy array > functions in the __numpy_implementaiton__ function attribute: > https://github.com/numpy/numpy/pull/13305 > > I believe this attribute improves the protocol in three ways: > 1. It provides a hook that __array_function__ methods can use to call > implementation intended for NumPy arrays. This allows for "partial > implementations" of NumPy's API, which turns out to useful even for some > array libraries that reimplement nearly everything (namely, for CuPy and > JAX). > 2. It allows for fast access to the non-dispatching version of NumPy > functions, e.g., > np.concatenate.__numpy_implementation__(list_of_all_numpy_arrays). > 3. Internally, the implementation of numpy.ndarray.__array_function__ now > looks identical to how we encourage outside developers to write their own > __array_function__ methods. The dispatching logic no longer includes a > special case for NumPy arrays. > > Feedback would be greatly welcomed! > > Best, > Stephan > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion