testing.fast_array_utils¶
Testing utilities.
Ideally used through the testing.fast_array_utils.pytest plugin.
- testing.fast_array_utils.SUPPORTED_TYPES: tuple[ArrayType, ...] = (numpy.ndarray, cupy.ndarray, scipy.sparse.csr_array, scipy.sparse.csc_array, scipy.sparse.csr_matrix, cupyx.scipy.sparse.csr_matrix, scipy.sparse.csc_matrix, cupyx.scipy.sparse.csc_matrix, dask.array.Array[numpy.ndarray], dask.array.Array[cupy.ndarray], dask.array.Array[scipy.sparse.csr_array], dask.array.Array[scipy.sparse.csc_array], dask.array.Array[scipy.sparse.csr_matrix], dask.array.Array[cupyx.scipy.sparse.csr_matrix], dask.array.Array[scipy.sparse.csc_matrix], dask.array.Array[cupyx.scipy.sparse.csc_matrix], h5py.Dataset, zarr.Array, anndata.abc.CSRDataset[h5py.Dataset], anndata.abc.CSCDataset[h5py.Dataset], anndata.abc.CSRDataset[zarr.Array], anndata.abc.CSCDataset[zarr.Array])¶
- All supported array types. 
- class testing.fast_array_utils.ArrayType(mod: str, name: str, flags: ~testing.fast_array_utils._array_type.Flags = <Flags.Any: 1>, *, inner: ~testing.fast_array_utils._array_type.Inner = None, conversion_context: ~testing.fast_array_utils._array_type.ConversionContext | None = None)¶
- Supported array type with methods for conversion and random generation. - Examples - >>> at = ArrayType("numpy", "ndarray") >>> arr = at([1, 2, 3]) >>> arr array([1, 2, 3]) >>> assert isinstance(arr, at.cls) - __call__(x: ArrayLike | Array, /, *, dtype: DTypeLike | None = None) Arr¶
- Convert to this array type. 
 - property cls: type[Arr]¶
- Array class for - isinstance()checks.
 - conversion_context: ConversionContext | None = None¶
- Conversion context required for converting to h5py. 
 - inner: Inner = None¶
- Inner array type (e.g. for dask). 
 - random(shape: tuple[int, int], *, dtype: _DTypeLikeNum | None = None, gen: np.random.Generator | None = None, density: float | np.floating[Any] = 0.01) Arr¶
- Create a random array. 
 
- class testing.fast_array_utils.ConversionContext(hdf5_file: h5py.File)¶
- Conversion context required for h5py. 
- class testing.fast_array_utils.Flags(*values)¶
- Array classification flags. - None_ = 0¶
- No array type. 
 - Any = 1¶
- Any array type. 
 - Sparse = 2¶
- Sparse array. 
 - Matrix = 4¶
- Matrix API ( - A * Bmeans- A @ B).
 - Gpu = 8¶
- GPU array. 
 - Dask = 16¶
- Dask array. 
 - Disk = 32¶
- On-disk array. 
 
- testing.fast_array_utils.random_mat(shape: tuple[int, int], *, density: float | np.floating[Any] = 0.01, format: Literal['csr', 'csc'] = 'csr', dtype: _DTypeLikeNum | None = None, container: Literal['array', 'matrix'] = 'array', rng: np.random.Generator | None = None) types.CSBase¶
- Create a random sparse matrix/array. 
testing.fast_array_utils.pytest¶
Pytest fixtures to get supported array types.
Can be used as pytest plugin: pytest -p testing.fast_array_utils.pytest.
- fixture testing.fast_array_utils.pytest.array_type¶
- Scope: session - Fixture for a supported - ArrayType.- Use - testing.fast_array_utils.Flagsto select or skip array types:- using - select=/- args[0]:- @pytest.mark.array_type(Flags.Sparse) def test_something(array_type: ArrayType) -> None: ... 
- and/or using - skip=/- args[1]:- @pytest.mark.array_type(skip=Flags.Dask | Flags.Disk | Flags.Gpu) def test_something(array_type: ArrayType) -> None: ... 
 - For special cases, you can also specify a - setof array types and flags. This is useful if you want to select or skip only specific array types.- from testing.fast_array_utils import SUPPORTED_TYPES SPARSE_AND_DASK = { at for at in SUPPORTED_TYPES if at.flags & Flags.Sparse and at.flags & Flags.Dask } @pytest.mark.array_type(skip={*SPARSE_AND_DASK, Flags.Disk}) def test_something(array_type: ArrayType) -> None: ...