| """`uarray` provides functions for generating multimethods that dispatch to | |
| multiple different backends | |
| This should be imported, rather than `_uarray` so that an installed version could | |
| be used instead, if available. This means that users can call | |
| `uarray.set_backend` directly instead of going through SciPy. | |
| """ | |
| # Prefer an installed version of uarray, if available | |
| try: | |
| import uarray as _uarray | |
| except ImportError: | |
| _has_uarray = False | |
| else: | |
| from scipy._lib._pep440 import Version as _Version | |
| _has_uarray = _Version(_uarray.__version__) >= _Version("0.8") | |
| del _uarray | |
| del _Version | |
| if _has_uarray: | |
| from uarray import * # noqa: F403 | |
| from uarray import _Function | |
| else: | |
| from ._uarray import * # noqa: F403 | |
| from ._uarray import _Function # noqa: F401 | |
| del _has_uarray | |