Files
nixpkgs/pkgs/development/python-modules/anndata/default.nix

145 lines
3.3 KiB
Nix

{
anndata,
array-api-compat,
awkward,
boltons,
buildPythonPackage,
dask,
distributed,
fetchFromGitHub,
filelock,
h5py,
hatch-vcs,
hatchling,
joblib,
lib,
legacy-api-wrap,
natsort,
numba,
numpy,
openpyxl,
pandas,
pyarrow,
pytest-mock,
pytest-xdist,
pytestCheckHook,
scanpy,
scikit-learn,
scipy,
stdenv,
zarr,
}:
buildPythonPackage rec {
pname = "anndata";
version = "0.12.2";
pyproject = true;
src = fetchFromGitHub {
owner = "scverse";
repo = "anndata";
tag = version;
hash = "sha256-uGkeSlYcphRnIFfe9UcLvnupKeMzAIm5wT8fp3gmPKw=";
};
build-system = [
hatch-vcs
hatchling
];
dependencies = [
array-api-compat
h5py
legacy-api-wrap
natsort
numpy
pandas
scipy
zarr
];
nativeCheckInputs = [
awkward
boltons
dask
distributed
filelock
joblib
numba
openpyxl
pyarrow
pytest-mock
pytest-xdist
pytestCheckHook
scikit-learn
scanpy
];
# Optionally disable pytest-xdist to make it easier to debug the test suite.
# Test suite takes ~5 minutes without pytest-xdist. Note that some tests will
# fail when running without pytest-xdist ("worker_id not found").
# pytestFlags = [ "-oaddopts=" ];
preCheck = ''
export NUMBA_CACHE_DIR=$(mktemp -d);
'';
doCheck = false; # use passthru.tests instead to prevent circularity with `scanpy`
passthru.tests = anndata.overridePythonAttrs { doCheck = true; };
disabledTests = [
# requires data from a previous test execution:
"test_no_diff"
# try to download data:
"anndata._io.specs.registry.read_elem_lazy"
"anndata.experimental.merge.concat_on_disk"
"anndata.experimental.multi_files._anncollection.AnnCollection"
# Tests that require cupy and GPU access. Introducing cupy as a dependency
# would make this package unfree and GPU access is not possible within the
# nix build environment anyhow.
"test_adata_raw_gpu"
"test_as_cupy_dask"
"test_as_dask_functions"
"test_concat_different_types_dask"
"test_concat_on_var_outer_join"
"test_concatenate_layers_misaligned"
"test_concatenate_layers_outer"
"test_concatenate_layers"
"test_concatenate_roundtrip"
"test_dask_to_memory_unbacked"
"test_ellipsis_index"
"test_error_on_mixed_device"
"test_gpu"
"test_io_spec_cupy"
"test_modify_view_component"
"test_nan_merge"
"test_pairwise_concat"
"test_raw_gpu"
"test_set_scalar_subset_X"
"test_transposed_concat"
"test_view_different_type_indices"
"test_view_of_view"
# Tests that are seemingly broken. See https://github.com/scverse/anndata/issues/2017.
"test_concat_dask_sparse_matches_memory"
]
++ lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [
# RuntimeError: Cluster failed to start: [Errno 1] Operation not permitted
"test_dask_distributed_write"
"test_read_lazy_h5_cluster"
];
pythonImportsCheck = [ "anndata" ];
meta = {
changelog = "https://github.com/scverse/anndata/blob/main/docs/release-notes/${version}.md";
description = "Python package for handling annotated data matrices in memory and on disk";
homepage = "https://anndata.readthedocs.io/";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ samuela ];
};
}