What's new in
:obj:`unumpy` is the first approach to leverage :obj:`uarray` in order to build a generic backend system for (what we hope will be) the core NumPy API specification. It's possible to create the backend object, and use that to perform operations. In addition, it's possible to change the used backend via a context manager.
Relation to the NumPy duck-array ecosystem
There are three main NumPy enhancement proposals (NEPs) inside NumPy itself that relate
to the duck-array ecosystem. There is NEP-22,
which is a high-level overview of the duck-array ecosystem, and the direction NumPy
intends to move towards. Two main protocols were introduced to fill this gap,
__array_function__ protocol defined in NEP-18,
and the older
__array_ufunc__ protocol defined in NEP-13.
:obj:`unumpy` provides an an alternate framework based on :obj:`uarray`, bypassing
__array_ufunc__ protocols entirely. It
provides a clear separation of concerns. It defines callables which can be overridden,
and expresses everything else in terms of these callables. See the :obj:`uarray`
documentation for more details.
.. toctree:: :hidden: :maxdepth: 3 generated/unumpy