anndata 0.11.3__tar.gz → 0.12.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/ISSUE_TEMPLATE/bug-report.yml +10 -2
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/workflows/benchmark.yml +7 -3
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/workflows/codespell.yml +5 -4
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/workflows/publish.yml +3 -0
- anndata-0.12.0rc1/.github/workflows/test-cpu.yml +123 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/workflows/test-gpu.yml +16 -9
- {anndata-0.11.3 → anndata-0.12.0rc1}/.gitignore +1 -2
- {anndata-0.11.3 → anndata-0.12.0rc1}/.pre-commit-config.yaml +9 -9
- {anndata-0.11.3 → anndata-0.12.0rc1}/.readthedocs.yml +1 -1
- anndata-0.12.0rc1/.taplo.toml +5 -0
- anndata-0.12.0rc1/.vscode/launch.json +26 -0
- anndata-0.12.0rc1/.vscode/settings.json +27 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/LICENSE +2 -1
- {anndata-0.11.3 → anndata-0.12.0rc1}/PKG-INFO +75 -27
- {anndata-0.11.3 → anndata-0.12.0rc1}/README.md +5 -4
- {anndata-0.11.3 → anndata-0.12.0rc1}/benchmarks/asv.conf.json +1 -23
- {anndata-0.11.3 → anndata-0.12.0rc1}/benchmarks/benchmarks/anndata.py +8 -2
- {anndata-0.11.3 → anndata-0.12.0rc1}/benchmarks/benchmarks/utils.py +2 -3
- anndata-0.12.0rc1/biome.jsonc +18 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/ci/scripts/min-deps.py +8 -8
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/api.md +54 -2
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/conf.py +40 -34
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/extensions/no_skip_abc_members.py +1 -1
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/fileformat-prose.md +1 -1
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.11.0.md +1 -1
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.11.1.md +1 -1
- anndata-0.12.0rc1/docs/release-notes/0.11.4.md +14 -0
- anndata-0.12.0rc1/docs/release-notes/0.12.0rc1.md +4 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/tutorials/index.md +2 -0
- anndata-0.12.0rc1/docs/tutorials/zarr-v3.md +105 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/hatch.toml +11 -11
- {anndata-0.11.3 → anndata-0.12.0rc1}/pyproject.toml +65 -51
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/__init__.py +5 -33
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/aligned_df.py +19 -3
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/aligned_mapping.py +5 -7
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/anndata.py +213 -116
- anndata-0.12.0rc1/src/anndata/_core/extensions.py +276 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/file_backing.py +16 -12
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/index.py +37 -24
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/merge.py +350 -88
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/raw.py +7 -6
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/sparse_dataset.py +73 -46
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/storage.py +24 -11
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/views.py +10 -2
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_io/h5ad.py +27 -21
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_io/read.py +19 -12
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_io/specs/__init__.py +2 -2
- anndata-0.12.0rc1/src/anndata/_io/specs/lazy_methods.py +346 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_io/specs/methods.py +244 -73
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_io/specs/registry.py +59 -37
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_io/utils.py +33 -12
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_io/write.py +18 -3
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_io/zarr.py +46 -10
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_settings.py +63 -39
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_types.py +36 -20
- anndata-0.12.0rc1/src/anndata/_version.py +37 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/abc.py +4 -5
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/compat/__init__.py +25 -60
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/experimental/__init__.py +4 -3
- anndata-0.12.0rc1/src/anndata/experimental/backed/__init__.py +5 -0
- anndata-0.12.0rc1/src/anndata/experimental/backed/_compat.py +43 -0
- anndata-0.12.0rc1/src/anndata/experimental/backed/_io.py +159 -0
- anndata-0.12.0rc1/src/anndata/experimental/backed/_lazy_arrays.py +187 -0
- anndata-0.12.0rc1/src/anndata/experimental/backed/_xarray.py +146 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/experimental/merge.py +45 -37
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/experimental/multi_files/_anncollection.py +31 -11
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/experimental/pytorch/_annloader.py +39 -11
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/io.py +1 -14
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/logging.py +12 -7
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/tests/helpers.py +209 -94
- anndata-0.12.0rc1/src/anndata/types.py +22 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/typing.py +7 -9
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/utils.py +19 -13
- anndata-0.12.0rc1/src/testing/anndata/_doctest.py +16 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/testing/anndata/_pytest.py +8 -16
- anndata-0.12.0rc1/src/testing/anndata/py.typed +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/conftest.py +57 -1
- anndata-0.12.0rc1/tests/lazy/conftest.py +247 -0
- anndata-0.12.0rc1/tests/lazy/test_concat.py +320 -0
- anndata-0.12.0rc1/tests/lazy/test_read.py +157 -0
- anndata-0.12.0rc1/tests/lazy/test_write.py +46 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_backed_dense.py +2 -6
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_backed_hdf5.py +6 -4
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_backed_sparse.py +89 -54
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_base.py +22 -3
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_concatenate.py +39 -26
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_concatenate_disk.py +8 -9
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_dask.py +17 -10
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_deprecations.py +6 -16
- anndata-0.12.0rc1/tests/test_extensions.py +230 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_helpers.py +3 -34
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_io_backwards_compat.py +9 -6
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_io_conversion.py +3 -2
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_io_dispatched.py +56 -26
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_io_elementwise.py +75 -54
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_io_partial.py +22 -17
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_io_utils.py +3 -7
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_layers.py +23 -16
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_readwrite.py +159 -50
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_settings.py +4 -16
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_structured_arrays.py +28 -22
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_views.py +12 -13
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_x.py +14 -13
- anndata-0.11.3/.azure-pipelines.yml +0 -129
- anndata-0.11.3/src/anndata/_io/specs/lazy_methods.py +0 -184
- anndata-0.11.3/src/anndata/_version.py +0 -16
- anndata-0.11.3/src/anndata/compat/exceptiongroups.py +0 -14
- {anndata-0.11.3 → anndata-0.12.0rc1}/.cirun.yml +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.codecov.yml +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.editorconfig +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/ISSUE_TEMPLATE/enhancement-request.yml +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/workflows/check-pr-milestoned.yml +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/workflows/close-stale.yml +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.github/workflows/label-stale.yml +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.gitmodules +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.prettierignore +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/.prettierrc.yaml +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/benchmarks/README.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/benchmarks/benchmarks/__init__.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/benchmarks/benchmarks/readwrite.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/benchmarks/benchmarks/sparse_dataset.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/ci/constraints.txt +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/ci/scripts/towncrier_automation.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/Makefile +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/_key_contributors.rst +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/_static/img/anndata_schema.svg +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/_templates/autosummary/class.rst +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/benchmark-read-write.ipynb +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/benchmarks.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/concatenation.rst +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/contributing.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/extensions/patch_myst_cite.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/index.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/interoperability.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/news.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/references.rst +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.0.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.1.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.2.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.3.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.4.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.5.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.6.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.7.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.8.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.10.9.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.11.2.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.11.3.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.4.0.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.5.0.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.6.0.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.6.x.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.7.0.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.7.2.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.7.3.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.7.4.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.7.5.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.7.6.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.7.7.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.7.8.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.8.0.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.9.0.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.9.1.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/0.9.2.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/docs/release-notes/index.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/__init__.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_core/access.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_io/__init__.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/_warnings.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/experimental/_dispatch_io.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/experimental/multi_files/__init__.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/src/anndata/experimental/pytorch/__init__.py +0 -0
- {anndata-0.11.3/src/testing/anndata → anndata-0.12.0rc1/src/anndata/tests}/__init__.py +0 -0
- /anndata-0.11.3/src/testing/anndata/py.typed → /anndata-0.12.0rc1/src/testing/anndata/__init__.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/data/adata-comments.tsv +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/data/adata.csv +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/data/archives/readme.md +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/data/archives/v0.7.0/adata.h5ad +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/data/archives/v0.7.0/adata.zarr.zip +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/data/archives/v0.7.8/adata.h5ad +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/data/archives/v0.7.8/adata.zarr.zip +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/data/excel.xlsx +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/data/umi_tools.tsv.gz +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_anncollection.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_annot.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_awkward.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_dask_view_mem.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_get_vector.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_gpu.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_inplace_subset.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_io_warnings.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_obsmvarm.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_obspvarp.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_raw.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_repr.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_transpose.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_uns.py +0 -0
- {anndata-0.11.3 → anndata-0.12.0rc1}/tests/test_utils.py +0 -0
|
@@ -53,10 +53,18 @@ body:
|
|
|
53
53
|
description: |
|
|
54
54
|
Which version of anndata and other related software you used.
|
|
55
55
|
|
|
56
|
-
Please install `session-
|
|
56
|
+
Please install `session-info2`, run the following command in a notebook,
|
|
57
|
+
click the “Copy as Markdown” button,
|
|
58
|
+
then paste the results into the text box below.
|
|
57
59
|
|
|
58
60
|
```python
|
|
59
|
-
|
|
61
|
+
In[1]: import anndata, session_info2; session_info2.session_info(dependencies=True)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Alternatively, run this in a console:
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
>>> import session_info2; print(session_info2.session_info(dependencies=True)._repr_mimebundle_()["text/markdown"])
|
|
60
68
|
```
|
|
61
69
|
render: python
|
|
62
70
|
validations:
|
|
@@ -6,12 +6,16 @@ on:
|
|
|
6
6
|
pull_request:
|
|
7
7
|
branches: [main]
|
|
8
8
|
|
|
9
|
+
env:
|
|
10
|
+
FORCE_COLOR: "1"
|
|
11
|
+
|
|
12
|
+
defaults:
|
|
13
|
+
run:
|
|
14
|
+
shell: bash -el {0}
|
|
15
|
+
|
|
9
16
|
jobs:
|
|
10
17
|
benchmark:
|
|
11
18
|
runs-on: ${{ matrix.os }}
|
|
12
|
-
defaults:
|
|
13
|
-
run:
|
|
14
|
-
shell: bash -el {0} # -e to fail on error, -l for mamba
|
|
15
19
|
|
|
16
20
|
strategy:
|
|
17
21
|
fail-fast: false
|
|
@@ -16,7 +16,8 @@ jobs:
|
|
|
16
16
|
runs-on: ubuntu-latest
|
|
17
17
|
|
|
18
18
|
steps:
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
filter: blob:none
|
|
23
|
+
- uses: codespell-project/actions-codespell@v2
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- "[0-9]+.[0-9]+.x"
|
|
8
|
+
pull_request:
|
|
9
|
+
|
|
10
|
+
env:
|
|
11
|
+
PYTEST_ADDOPTS: "-v --color=yes"
|
|
12
|
+
FORCE_COLOR: "1"
|
|
13
|
+
|
|
14
|
+
defaults:
|
|
15
|
+
run:
|
|
16
|
+
shell: bash -el {0}
|
|
17
|
+
|
|
18
|
+
# Cancel the job if new commits are pushed
|
|
19
|
+
# https://stackoverflow.com/questions/66335225/how-to-cancel-previous-runs-in-the-pr-when-you-push-new-commitsupdate-the-curre
|
|
20
|
+
concurrency:
|
|
21
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
22
|
+
cancel-in-progress: true
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
pytest:
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
strategy:
|
|
28
|
+
matrix:
|
|
29
|
+
include:
|
|
30
|
+
- python-version: '3.13'
|
|
31
|
+
test-type: coverage
|
|
32
|
+
- python-version: '3.11'
|
|
33
|
+
test-type: standard
|
|
34
|
+
- python-version: '3.13'
|
|
35
|
+
dependencies-version: pre-release
|
|
36
|
+
test-type: strict-warning
|
|
37
|
+
- python-version: '3.11'
|
|
38
|
+
dependencies-version: minimum
|
|
39
|
+
test-type: coverage
|
|
40
|
+
steps:
|
|
41
|
+
- uses: actions/checkout@v4
|
|
42
|
+
with:
|
|
43
|
+
fetch-depth: 0
|
|
44
|
+
filter: blob:none
|
|
45
|
+
|
|
46
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
47
|
+
uses: actions/setup-python@v5
|
|
48
|
+
with:
|
|
49
|
+
python-version: ${{ matrix.python-version }}
|
|
50
|
+
|
|
51
|
+
- name: Install UV
|
|
52
|
+
uses: astral-sh/setup-uv@v5
|
|
53
|
+
with:
|
|
54
|
+
enable-cache: true
|
|
55
|
+
cache-dependency-glob: pyproject.toml
|
|
56
|
+
|
|
57
|
+
- name: Install dependencies
|
|
58
|
+
if: matrix.dependencies-version == null
|
|
59
|
+
run: uv pip install --system --compile "anndata[dev,test-full] @ ." -c ci/constraints.txt
|
|
60
|
+
|
|
61
|
+
- name: Install minimum dependencies
|
|
62
|
+
if: matrix.dependencies-version == 'minimum'
|
|
63
|
+
run: |
|
|
64
|
+
uv pip install --system --compile tomli packaging
|
|
65
|
+
deps=$(python3 ci/scripts/min-deps.py pyproject.toml --extra dev test)
|
|
66
|
+
uv pip install --system --compile $deps "anndata @ ."
|
|
67
|
+
|
|
68
|
+
- name: Install dependencies release candidates
|
|
69
|
+
if: matrix.dependencies-version == 'pre-release'
|
|
70
|
+
run: uv pip install -v --system --compile --pre "anndata[dev,test-full] @ ." -c ci/constraints.txt
|
|
71
|
+
|
|
72
|
+
- name: Display installed versions
|
|
73
|
+
run: uv pip list
|
|
74
|
+
|
|
75
|
+
- name: Run Pytest
|
|
76
|
+
if: matrix.test-type == 'standard'
|
|
77
|
+
run: pytest -n auto
|
|
78
|
+
|
|
79
|
+
- name: Run Pytest (coverage)
|
|
80
|
+
if: matrix.test-type == 'coverage'
|
|
81
|
+
run: coverage run -m pytest -n auto --cov --cov-report=xml
|
|
82
|
+
|
|
83
|
+
- name: Run Pytest (treat warnings as errors)
|
|
84
|
+
if: matrix.test-type == 'strict-warning'
|
|
85
|
+
run: pytest --strict-warnings -n auto
|
|
86
|
+
|
|
87
|
+
- uses: codecov/codecov-action@v4
|
|
88
|
+
if: matrix.test-type == 'coverage'
|
|
89
|
+
with:
|
|
90
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
91
|
+
fail_ci_if_error: true
|
|
92
|
+
files: test-data/coverage.xml
|
|
93
|
+
|
|
94
|
+
check-build:
|
|
95
|
+
runs-on: ubuntu-22.04
|
|
96
|
+
steps:
|
|
97
|
+
- uses: actions/checkout@v4
|
|
98
|
+
with:
|
|
99
|
+
fetch-depth: 0
|
|
100
|
+
filter: blob:none
|
|
101
|
+
|
|
102
|
+
- name: Set up Python 3.13
|
|
103
|
+
uses: actions/setup-python@v5
|
|
104
|
+
with:
|
|
105
|
+
python-version: '3.13'
|
|
106
|
+
|
|
107
|
+
- name: Install build tools and requirements
|
|
108
|
+
run: |
|
|
109
|
+
python -m pip install --upgrade pip
|
|
110
|
+
pip install build twine
|
|
111
|
+
|
|
112
|
+
- name: Display installed versions
|
|
113
|
+
run: pip list
|
|
114
|
+
|
|
115
|
+
- name: Build & Twine check
|
|
116
|
+
run: |
|
|
117
|
+
python -m build --sdist --wheel .
|
|
118
|
+
twine check dist/*
|
|
119
|
+
|
|
120
|
+
- name: Check runtime version
|
|
121
|
+
run: |
|
|
122
|
+
pip install dist/*.whl
|
|
123
|
+
python -c 'import anndata; print(anndata.__version__)'
|
|
@@ -9,6 +9,14 @@ on:
|
|
|
9
9
|
- opened
|
|
10
10
|
- synchronize
|
|
11
11
|
|
|
12
|
+
env:
|
|
13
|
+
PYTEST_ADDOPTS: "-v --color=yes"
|
|
14
|
+
FORCE_COLOR: "1"
|
|
15
|
+
|
|
16
|
+
defaults:
|
|
17
|
+
run:
|
|
18
|
+
shell: bash -el {0}
|
|
19
|
+
|
|
12
20
|
# Cancel the job if new commits are pushed
|
|
13
21
|
# https://stackoverflow.com/questions/66335225/how-to-cancel-previous-runs-in-the-pr-when-you-push-new-commitsupdate-the-curre
|
|
14
22
|
concurrency:
|
|
@@ -39,14 +47,11 @@ jobs:
|
|
|
39
47
|
# At time of writing, a typical run takes about 5 minutes
|
|
40
48
|
timeout-minutes: 30
|
|
41
49
|
|
|
42
|
-
defaults:
|
|
43
|
-
run:
|
|
44
|
-
shell: bash -el {0}
|
|
45
|
-
|
|
46
50
|
steps:
|
|
47
51
|
- uses: actions/checkout@v4
|
|
48
52
|
with:
|
|
49
53
|
fetch-depth: 0
|
|
54
|
+
filter: blob:none
|
|
50
55
|
|
|
51
56
|
- name: Nvidia SMI sanity check
|
|
52
57
|
run: nvidia-smi
|
|
@@ -64,12 +69,14 @@ jobs:
|
|
|
64
69
|
- name: Install Python
|
|
65
70
|
uses: actions/setup-python@v5
|
|
66
71
|
with:
|
|
67
|
-
|
|
72
|
+
# https://github.com/cupy/cupy/issues/8651 cupy does not support python3.13 yet
|
|
73
|
+
python-version: "3.12"
|
|
68
74
|
|
|
69
75
|
- name: Install UV
|
|
70
|
-
uses:
|
|
76
|
+
uses: astral-sh/setup-uv@v5
|
|
71
77
|
with:
|
|
72
|
-
cache
|
|
78
|
+
enable-cache: true
|
|
79
|
+
cache-dependency-glob: pyproject.toml
|
|
73
80
|
|
|
74
81
|
- name: Install AnnData
|
|
75
82
|
run: uv pip install --system -e ".[dev,test,cu12]" -c ci/constraints.txt
|
|
@@ -78,13 +85,13 @@ jobs:
|
|
|
78
85
|
run: pip list
|
|
79
86
|
|
|
80
87
|
- name: Run test
|
|
81
|
-
run: pytest -m gpu --cov --cov-report=xml
|
|
88
|
+
run: coverage run -m pytest -m gpu -n auto --cov --cov-report=xml
|
|
82
89
|
|
|
83
90
|
- uses: codecov/codecov-action@v4
|
|
84
91
|
with:
|
|
85
92
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
86
93
|
fail_ci_if_error: true
|
|
87
|
-
|
|
94
|
+
files: test-data/coverage.xml
|
|
88
95
|
|
|
89
96
|
- name: Remove 'run-gpu-ci' Label
|
|
90
97
|
if: always()
|
|
@@ -7,11 +7,11 @@ __pycache__/
|
|
|
7
7
|
/*cache/
|
|
8
8
|
/node_modules/
|
|
9
9
|
/data/
|
|
10
|
+
/venv/
|
|
10
11
|
|
|
11
12
|
# Distribution / packaging
|
|
12
13
|
/dist/
|
|
13
14
|
/ci/min-deps.txt
|
|
14
|
-
/src/anndata/_version.py
|
|
15
15
|
/requirements*.lock
|
|
16
16
|
/.python-version
|
|
17
17
|
|
|
@@ -28,7 +28,6 @@ __pycache__/
|
|
|
28
28
|
|
|
29
29
|
# IDEs
|
|
30
30
|
/.idea/
|
|
31
|
-
/.vscode/
|
|
32
31
|
|
|
33
32
|
# Benchmark
|
|
34
33
|
.asv
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
repos:
|
|
2
2
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
-
rev: v0.
|
|
3
|
+
rev: v0.11.4
|
|
4
4
|
hooks:
|
|
5
5
|
- id: ruff
|
|
6
|
-
types_or: [python, pyi, jupyter]
|
|
7
6
|
args: ["--fix"]
|
|
8
7
|
- id: ruff-format
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
rev: v4.0.0-alpha.8
|
|
8
|
+
- repo: https://github.com/biomejs/pre-commit
|
|
9
|
+
rev: v1.9.4
|
|
12
10
|
hooks:
|
|
13
|
-
- id:
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
- id: biome-format
|
|
12
|
+
- repo: https://github.com/ComPWA/taplo-pre-commit
|
|
13
|
+
rev: v0.9.3
|
|
14
|
+
hooks:
|
|
15
|
+
- id: taplo-format
|
|
16
16
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
17
17
|
rev: v5.0.0
|
|
18
18
|
hooks:
|
|
@@ -27,7 +27,7 @@ repos:
|
|
|
27
27
|
- id: no-commit-to-branch
|
|
28
28
|
args: ["--branch=main"]
|
|
29
29
|
- repo: https://github.com/codespell-project/codespell
|
|
30
|
-
rev: v2.
|
|
30
|
+
rev: v2.4.1
|
|
31
31
|
hooks:
|
|
32
32
|
- id: codespell
|
|
33
33
|
additional_dependencies:
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.2.0",
|
|
3
|
+
"configurations": [
|
|
4
|
+
{
|
|
5
|
+
"name": "Python: Build Docs",
|
|
6
|
+
"type": "debugpy",
|
|
7
|
+
"request": "launch",
|
|
8
|
+
"module": "sphinx",
|
|
9
|
+
"args": ["-M", "html", ".", "_build"],
|
|
10
|
+
"cwd": "${workspaceFolder}/docs",
|
|
11
|
+
"console": "internalConsole",
|
|
12
|
+
"justMyCode": false,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "Python: Debug Test",
|
|
16
|
+
"type": "debugpy",
|
|
17
|
+
"request": "launch",
|
|
18
|
+
"program": "${file}",
|
|
19
|
+
"purpose": ["debug-test"],
|
|
20
|
+
"console": "internalConsole",
|
|
21
|
+
"justMyCode": false,
|
|
22
|
+
"env": { "PYTEST_ADDOPTS": "--color=yes" },
|
|
23
|
+
"presentation": { "hidden": true },
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[python][toml][json][jsonc]": {
|
|
3
|
+
"editor.formatOnSave": true,
|
|
4
|
+
"editor.codeActionsOnSave": {
|
|
5
|
+
"source.organizeImports": "explicit",
|
|
6
|
+
"source.fixAll": "explicit",
|
|
7
|
+
},
|
|
8
|
+
},
|
|
9
|
+
"[python]": {
|
|
10
|
+
"editor.defaultFormatter": "charliermarsh.ruff",
|
|
11
|
+
},
|
|
12
|
+
"[toml]": {
|
|
13
|
+
"editor.defaultFormatter": "tamasfe.even-better-toml",
|
|
14
|
+
},
|
|
15
|
+
"[json][jsonc]": {
|
|
16
|
+
"editor.defaultFormatter": "biomejs.biome",
|
|
17
|
+
},
|
|
18
|
+
"python.analysis.typeCheckingMode": "basic",
|
|
19
|
+
"python.testing.pytestEnabled": true,
|
|
20
|
+
"python.testing.pytestArgs": [
|
|
21
|
+
"--color=yes",
|
|
22
|
+
"-vv",
|
|
23
|
+
"--strict-warnings",
|
|
24
|
+
//"-nauto",
|
|
25
|
+
],
|
|
26
|
+
"python.terminal.activateEnvironment": true,
|
|
27
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
BSD 3-Clause License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2025, scverse®
|
|
4
|
+
Copyright (c) 2017-2018, P. Angerer, F. Alexander Wolf, Theis Lab
|
|
4
5
|
All rights reserved.
|
|
5
6
|
|
|
6
7
|
Redistribution and use in source and binary forms, with or without
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anndata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.0rc1
|
|
4
4
|
Summary: Annotated data.
|
|
5
5
|
Project-URL: Documentation, https://anndata.readthedocs.io/
|
|
6
6
|
Project-URL: Source, https://github.com/scverse/anndata
|
|
7
7
|
Project-URL: Home-page, https://github.com/scverse/anndata
|
|
8
8
|
Author: Philipp Angerer, Alex Wolf, Isaac Virshup, Sergei Rybakov
|
|
9
|
-
Maintainer-email: Isaac Virshup <ivirshup@gmail.com>, Philipp Angerer <philipp.angerer@helmholtz-munich.de>,
|
|
9
|
+
Maintainer-email: Isaac Virshup <ivirshup@gmail.com>, Philipp Angerer <philipp.angerer@helmholtz-munich.de>, Ilan Gold <ilan.gold@helmholtz-munich.de>
|
|
10
10
|
License-Expression: BSD-3-Clause
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Classifier: Environment :: Console
|
|
@@ -18,74 +18,121 @@ Classifier: Operating System :: MacOS :: MacOS X
|
|
|
18
18
|
Classifier: Operating System :: Microsoft :: Windows
|
|
19
19
|
Classifier: Operating System :: POSIX :: Linux
|
|
20
20
|
Classifier: Programming Language :: Python :: 3
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
24
|
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
25
25
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
26
|
-
Requires-Python: >=3.
|
|
26
|
+
Requires-Python: >=3.11
|
|
27
27
|
Requires-Dist: array-api-compat!=1.5,>1.4
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: h5py>=3.8
|
|
29
|
+
Requires-Dist: legacy-api-wrap
|
|
30
30
|
Requires-Dist: natsort
|
|
31
|
-
Requires-Dist: numpy>=1.
|
|
32
|
-
Requires-Dist: packaging>=
|
|
33
|
-
Requires-Dist: pandas!=2.1.0rc0,!=2.1.2,>=
|
|
34
|
-
Requires-Dist: scipy>1.
|
|
31
|
+
Requires-Dist: numpy>=1.25
|
|
32
|
+
Requires-Dist: packaging>=24.2
|
|
33
|
+
Requires-Dist: pandas!=2.1.0rc0,!=2.1.2,>=2.0.0
|
|
34
|
+
Requires-Dist: scipy>1.11
|
|
35
|
+
Requires-Dist: zarr!=3.0.0,!=3.0.1,!=3.0.2,!=3.0.3,>=2.18.7
|
|
35
36
|
Provides-Extra: cu11
|
|
36
37
|
Requires-Dist: cupy-cuda11x; extra == 'cu11'
|
|
37
38
|
Provides-Extra: cu12
|
|
38
39
|
Requires-Dist: cupy-cuda12x; extra == 'cu12'
|
|
39
40
|
Provides-Extra: dask
|
|
40
|
-
Requires-Dist: dask[array]!=2024.8.*,!=2024.9
|
|
41
|
+
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=2023.5.1; extra == 'dask'
|
|
41
42
|
Provides-Extra: dev
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist:
|
|
43
|
+
Requires-Dist: awkward>=2.3; extra == 'dev'
|
|
44
|
+
Requires-Dist: boltons; extra == 'dev'
|
|
45
|
+
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=2023.5.1; extra == 'dev'
|
|
46
|
+
Requires-Dist: dask[distributed]; extra == 'dev'
|
|
47
|
+
Requires-Dist: filelock; extra == 'dev'
|
|
48
|
+
Requires-Dist: hatch-vcs; extra == 'dev'
|
|
49
|
+
Requires-Dist: httpx; extra == 'dev'
|
|
50
|
+
Requires-Dist: joblib; extra == 'dev'
|
|
51
|
+
Requires-Dist: loompy>=3.0.5; extra == 'dev'
|
|
52
|
+
Requires-Dist: matplotlib; extra == 'dev'
|
|
53
|
+
Requires-Dist: openpyxl; extra == 'dev'
|
|
54
|
+
Requires-Dist: pyarrow; extra == 'dev'
|
|
55
|
+
Requires-Dist: pytest-cov; extra == 'dev'
|
|
56
|
+
Requires-Dist: pytest-memray; extra == 'dev'
|
|
57
|
+
Requires-Dist: pytest-mock; extra == 'dev'
|
|
58
|
+
Requires-Dist: pytest-randomly; extra == 'dev'
|
|
59
|
+
Requires-Dist: pytest-xdist[psutil]; extra == 'dev'
|
|
60
|
+
Requires-Dist: pytest<8.3.4,>=8.2; extra == 'dev'
|
|
61
|
+
Requires-Dist: scanpy>=1.10; extra == 'dev'
|
|
62
|
+
Requires-Dist: scikit-learn; extra == 'dev'
|
|
44
63
|
Requires-Dist: towncrier>=24.8.0; extra == 'dev'
|
|
45
64
|
Provides-Extra: dev-doc
|
|
46
65
|
Requires-Dist: towncrier>=24.8.0; extra == 'dev-doc'
|
|
47
|
-
Provides-Extra: dev-test
|
|
48
|
-
Requires-Dist: pytest-xdist; extra == 'dev-test'
|
|
49
66
|
Provides-Extra: doc
|
|
50
67
|
Requires-Dist: awkward>=2.3; extra == 'doc'
|
|
68
|
+
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=2023.5.1; extra == 'doc'
|
|
51
69
|
Requires-Dist: ipython; extra == 'doc'
|
|
70
|
+
Requires-Dist: myst-nb; extra == 'doc'
|
|
52
71
|
Requires-Dist: myst-parser; extra == 'doc'
|
|
53
|
-
Requires-Dist: nbsphinx; extra == 'doc'
|
|
54
72
|
Requires-Dist: readthedocs-sphinx-search; extra == 'doc'
|
|
55
|
-
Requires-Dist: scanpydoc[theme,typehints]>=0.
|
|
73
|
+
Requires-Dist: scanpydoc[theme,typehints]>=0.15.1; extra == 'doc'
|
|
56
74
|
Requires-Dist: sphinx-autodoc-typehints>=2.2.0; extra == 'doc'
|
|
57
75
|
Requires-Dist: sphinx-book-theme>=1.1.0; extra == 'doc'
|
|
58
76
|
Requires-Dist: sphinx-copybutton; extra == 'doc'
|
|
59
77
|
Requires-Dist: sphinx-design>=0.5.0; extra == 'doc'
|
|
60
78
|
Requires-Dist: sphinx-issues; extra == 'doc'
|
|
61
79
|
Requires-Dist: sphinx-toolbox>=3.8.0; extra == 'doc'
|
|
62
|
-
Requires-Dist: sphinx>=
|
|
80
|
+
Requires-Dist: sphinx>=8.2.1; extra == 'doc'
|
|
63
81
|
Requires-Dist: sphinxext-opengraph; extra == 'doc'
|
|
64
82
|
Requires-Dist: towncrier>=24.8.0; extra == 'doc'
|
|
65
|
-
Requires-Dist: zarr<3; extra == 'doc'
|
|
66
83
|
Provides-Extra: gpu
|
|
67
84
|
Requires-Dist: cupy; extra == 'gpu'
|
|
85
|
+
Provides-Extra: lazy
|
|
86
|
+
Requires-Dist: aiohttp; extra == 'lazy'
|
|
87
|
+
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=2023.5.1; extra == 'lazy'
|
|
88
|
+
Requires-Dist: requests; extra == 'lazy'
|
|
89
|
+
Requires-Dist: xarray>=2024.06.0; extra == 'lazy'
|
|
68
90
|
Provides-Extra: test
|
|
69
91
|
Requires-Dist: awkward>=2.3; extra == 'test'
|
|
70
92
|
Requires-Dist: boltons; extra == 'test'
|
|
71
|
-
Requires-Dist: dask[array]!=2024.8.*,!=2024.9
|
|
93
|
+
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=2023.5.1; extra == 'test'
|
|
72
94
|
Requires-Dist: dask[distributed]; extra == 'test'
|
|
95
|
+
Requires-Dist: filelock; extra == 'test'
|
|
73
96
|
Requires-Dist: httpx; extra == 'test'
|
|
74
97
|
Requires-Dist: joblib; extra == 'test'
|
|
75
98
|
Requires-Dist: loompy>=3.0.5; extra == 'test'
|
|
76
99
|
Requires-Dist: matplotlib; extra == 'test'
|
|
77
100
|
Requires-Dist: openpyxl; extra == 'test'
|
|
78
101
|
Requires-Dist: pyarrow; extra == 'test'
|
|
79
|
-
Requires-Dist: pytest-cov
|
|
102
|
+
Requires-Dist: pytest-cov; extra == 'test'
|
|
80
103
|
Requires-Dist: pytest-memray; extra == 'test'
|
|
81
104
|
Requires-Dist: pytest-mock; extra == 'test'
|
|
105
|
+
Requires-Dist: pytest-randomly; extra == 'test'
|
|
106
|
+
Requires-Dist: pytest-xdist[psutil]; extra == 'test'
|
|
82
107
|
Requires-Dist: pytest<8.3.4,>=8.2; extra == 'test'
|
|
83
|
-
Requires-Dist: scanpy>=1.
|
|
108
|
+
Requires-Dist: scanpy>=1.10; extra == 'test'
|
|
84
109
|
Requires-Dist: scikit-learn; extra == 'test'
|
|
85
|
-
|
|
110
|
+
Provides-Extra: test-full
|
|
111
|
+
Requires-Dist: aiohttp; extra == 'test-full'
|
|
112
|
+
Requires-Dist: awkward>=2.3; extra == 'test-full'
|
|
113
|
+
Requires-Dist: boltons; extra == 'test-full'
|
|
114
|
+
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=2023.5.1; extra == 'test-full'
|
|
115
|
+
Requires-Dist: dask[distributed]; extra == 'test-full'
|
|
116
|
+
Requires-Dist: filelock; extra == 'test-full'
|
|
117
|
+
Requires-Dist: httpx; extra == 'test-full'
|
|
118
|
+
Requires-Dist: joblib; extra == 'test-full'
|
|
119
|
+
Requires-Dist: loompy>=3.0.5; extra == 'test-full'
|
|
120
|
+
Requires-Dist: matplotlib; extra == 'test-full'
|
|
121
|
+
Requires-Dist: openpyxl; extra == 'test-full'
|
|
122
|
+
Requires-Dist: pyarrow; extra == 'test-full'
|
|
123
|
+
Requires-Dist: pytest-cov; extra == 'test-full'
|
|
124
|
+
Requires-Dist: pytest-memray; extra == 'test-full'
|
|
125
|
+
Requires-Dist: pytest-mock; extra == 'test-full'
|
|
126
|
+
Requires-Dist: pytest-randomly; extra == 'test-full'
|
|
127
|
+
Requires-Dist: pytest-xdist[psutil]; extra == 'test-full'
|
|
128
|
+
Requires-Dist: pytest<8.3.4,>=8.2; extra == 'test-full'
|
|
129
|
+
Requires-Dist: requests; extra == 'test-full'
|
|
130
|
+
Requires-Dist: scanpy>=1.10; extra == 'test-full'
|
|
131
|
+
Requires-Dist: scikit-learn; extra == 'test-full'
|
|
132
|
+
Requires-Dist: xarray>=2024.06.0; extra == 'test-full'
|
|
86
133
|
Description-Content-Type: text/markdown
|
|
87
134
|
|
|
88
|
-
[](https://github.com/scverse/anndata/actions)
|
|
89
136
|
[](https://anaconda.org/conda-forge/anndata)
|
|
90
137
|
[](https://codecov.io/gh/scverse/anndata)
|
|
91
138
|
[](https://anndata.readthedocs.io)
|
|
@@ -112,16 +159,17 @@ anndata is a Python package for handling annotated data matrices in memory and o
|
|
|
112
159
|
|
|
113
160
|
[//]: # (numfocus-fiscal-sponsor-attribution)
|
|
114
161
|
|
|
115
|
-
anndata is part of the scverse project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/).
|
|
116
|
-
|
|
117
|
-
|
|
162
|
+
anndata is part of the scverse® project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/).
|
|
163
|
+
If you like scverse® and want to support our mission, please consider making a tax-deductible [donation](https://numfocus.org/donate-to-scverse) to help the project pay for developer time, professional services, travel, workshops, and a variety of other needs.
|
|
118
164
|
|
|
165
|
+
<div align="center">
|
|
119
166
|
<a href="https://numfocus.org/project/scverse">
|
|
120
167
|
<img
|
|
121
168
|
src="https://raw.githubusercontent.com/numfocus/templates/master/images/numfocus-logo.png"
|
|
122
169
|
width="200"
|
|
123
170
|
>
|
|
124
171
|
</a>
|
|
172
|
+
</div>
|
|
125
173
|
|
|
126
174
|
## Public API
|
|
127
175
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[](https://github.com/scverse/anndata/actions)
|
|
2
2
|
[](https://anaconda.org/conda-forge/anndata)
|
|
3
3
|
[](https://codecov.io/gh/scverse/anndata)
|
|
4
4
|
[](https://anndata.readthedocs.io)
|
|
@@ -25,16 +25,17 @@ anndata is a Python package for handling annotated data matrices in memory and o
|
|
|
25
25
|
|
|
26
26
|
[//]: # (numfocus-fiscal-sponsor-attribution)
|
|
27
27
|
|
|
28
|
-
anndata is part of the scverse project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/).
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
anndata is part of the scverse® project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/).
|
|
29
|
+
If you like scverse® and want to support our mission, please consider making a tax-deductible [donation](https://numfocus.org/donate-to-scverse) to help the project pay for developer time, professional services, travel, workshops, and a variety of other needs.
|
|
31
30
|
|
|
31
|
+
<div align="center">
|
|
32
32
|
<a href="https://numfocus.org/project/scverse">
|
|
33
33
|
<img
|
|
34
34
|
src="https://raw.githubusercontent.com/numfocus/templates/master/images/numfocus-logo.png"
|
|
35
35
|
width="200"
|
|
36
36
|
>
|
|
37
37
|
</a>
|
|
38
|
+
</div>
|
|
38
39
|
|
|
39
40
|
## Public API
|
|
40
41
|
|