Apply an ndarray level function over ndarray objects.
(func, *args, dask="forbidden")
| 871 | |
| 872 | |
| 873 | def apply_array_ufunc(func, *args, dask="forbidden"): |
| 874 | """Apply an ndarray level function over ndarray objects.""" |
| 875 | if any(is_chunked_array(arg) for arg in args): |
| 876 | if dask == "forbidden": |
| 877 | raise ValueError( |
| 878 | "apply_ufunc encountered a dask array on an " |
| 879 | "argument, but handling for dask arrays has not " |
| 880 | "been enabled. Either set the ``dask`` argument " |
| 881 | "or load your data into memory first with " |
| 882 | "``.load()`` or ``.compute()``" |
| 883 | ) |
| 884 | elif dask == "parallelized": |
| 885 | raise ValueError( |
| 886 | "cannot use dask='parallelized' for apply_ufunc " |
| 887 | "unless at least one input is an xarray object" |
| 888 | ) |
| 889 | elif dask == "allowed": |
| 890 | pass |
| 891 | else: |
| 892 | raise ValueError(f"unknown setting for dask array handling: {dask}") |
| 893 | return func(*args) |
| 894 | |
| 895 | |
| 896 | def apply_ufunc( |
no test coverage detected
searching dependent graphs…