anndata 0.11.4__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.4 → anndata-0.12.0rc1}/.github/ISSUE_TEMPLATE/bug-report.yml +10 -2
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/workflows/test-cpu.yml +8 -9
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/workflows/test-gpu.yml +2 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/.gitignore +1 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.pre-commit-config.yaml +1 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/.readthedocs.yml +1 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/LICENSE +1 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/PKG-INFO +46 -19
- {anndata-0.11.4 → anndata-0.12.0rc1}/README.md +1 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/benchmarks/asv.conf.json +1 -23
- {anndata-0.11.4 → anndata-0.12.0rc1}/benchmarks/benchmarks/anndata.py +8 -2
- {anndata-0.11.4 → anndata-0.12.0rc1}/ci/scripts/min-deps.py +5 -7
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/api.md +38 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/conf.py +14 -3
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/extensions/no_skip_abc_members.py +1 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/fileformat-prose.md +1 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.11.0.md +1 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.11.1.md +1 -1
- anndata-0.12.0rc1/docs/release-notes/0.12.0rc1.md +4 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/tutorials/index.md +2 -0
- anndata-0.12.0rc1/docs/tutorials/zarr-v3.md +105 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/hatch.toml +2 -2
- {anndata-0.11.4 → anndata-0.12.0rc1}/pyproject.toml +22 -14
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/__init__.py +5 -23
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/aligned_df.py +17 -2
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/aligned_mapping.py +2 -2
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/anndata.py +67 -35
- anndata-0.12.0rc1/src/anndata/_core/extensions.py +276 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/file_backing.py +7 -6
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/index.py +20 -12
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/merge.py +280 -42
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/sparse_dataset.py +42 -18
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/storage.py +24 -11
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/views.py +6 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_io/h5ad.py +5 -3
- {anndata-0.11.4 → 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.4 → anndata-0.12.0rc1}/src/anndata/_io/specs/methods.py +182 -54
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_io/specs/registry.py +52 -30
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_io/utils.py +24 -7
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_io/write.py +13 -2
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_io/zarr.py +43 -9
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_settings.py +31 -34
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_types.py +36 -20
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/abc.py +1 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/compat/__init__.py +23 -66
- {anndata-0.11.4 → 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.4 → anndata-0.12.0rc1}/src/anndata/experimental/merge.py +17 -13
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/experimental/multi_files/_anncollection.py +23 -7
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/experimental/pytorch/_annloader.py +37 -10
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/io.py +1 -16
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/logging.py +12 -7
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/tests/helpers.py +196 -80
- anndata-0.12.0rc1/src/anndata/types.py +22 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/typing.py +3 -4
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/utils.py +5 -4
- anndata-0.12.0rc1/src/testing/anndata/_doctest.py +16 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/testing/anndata/_pytest.py +7 -4
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/conftest.py +21 -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.4 → anndata-0.12.0rc1}/tests/test_backed_dense.py +2 -6
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_backed_hdf5.py +3 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_backed_sparse.py +81 -46
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_base.py +1 -3
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_concatenate.py +19 -17
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_concatenate_disk.py +2 -1
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_dask.py +2 -5
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_deprecations.py +6 -16
- anndata-0.12.0rc1/tests/test_extensions.py +230 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_helpers.py +1 -33
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_io_backwards_compat.py +9 -6
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_io_dispatched.py +50 -20
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_io_elementwise.py +54 -52
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_io_partial.py +22 -17
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_io_utils.py +3 -7
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_readwrite.py +140 -41
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_settings.py +2 -15
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_structured_arrays.py +28 -22
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_views.py +12 -13
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_x.py +5 -10
- anndata-0.11.4/src/anndata/_io/specs/lazy_methods.py +0 -186
- anndata-0.11.4/src/anndata/compat/exceptiongroups.py +0 -14
- {anndata-0.11.4 → anndata-0.12.0rc1}/.cirun.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.codecov.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.editorconfig +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/ISSUE_TEMPLATE/enhancement-request.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/workflows/benchmark.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/workflows/check-pr-milestoned.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/workflows/close-stale.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/workflows/codespell.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/workflows/label-stale.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.github/workflows/publish.yml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.gitmodules +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.prettierignore +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.prettierrc.yaml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.taplo.toml +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.vscode/launch.json +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/.vscode/settings.json +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/benchmarks/README.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/benchmarks/benchmarks/__init__.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/benchmarks/benchmarks/readwrite.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/benchmarks/benchmarks/sparse_dataset.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/benchmarks/benchmarks/utils.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/biome.jsonc +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/ci/constraints.txt +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/ci/scripts/towncrier_automation.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/Makefile +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/_key_contributors.rst +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/_static/img/anndata_schema.svg +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/_templates/autosummary/class.rst +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/benchmark-read-write.ipynb +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/benchmarks.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/concatenation.rst +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/contributing.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/extensions/patch_myst_cite.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/index.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/interoperability.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/news.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/references.rst +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.0.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.1.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.2.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.3.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.4.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.5.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.6.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.7.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.8.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.10.9.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.11.2.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.11.3.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.11.4.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.4.0.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.5.0.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.6.0.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.6.x.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.7.0.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.7.2.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.7.3.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.7.4.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.7.5.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.7.6.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.7.7.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.7.8.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.8.0.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.9.0.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.9.1.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/0.9.2.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/docs/release-notes/index.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/__init__.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/access.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_core/raw.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_io/__init__.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_io/read.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_version.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/_warnings.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/experimental/_dispatch_io.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/experimental/multi_files/__init__.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/experimental/pytorch/__init__.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/anndata/tests/__init__.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/testing/anndata/__init__.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/src/testing/anndata/py.typed +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/data/adata-comments.tsv +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/data/adata.csv +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/data/archives/readme.md +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/data/archives/v0.7.0/adata.h5ad +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/data/archives/v0.7.0/adata.zarr.zip +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/data/archives/v0.7.8/adata.h5ad +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/data/archives/v0.7.8/adata.zarr.zip +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/data/excel.xlsx +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/data/umi_tools.tsv.gz +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_anncollection.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_annot.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_awkward.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_dask_view_mem.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_get_vector.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_gpu.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_inplace_subset.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_io_conversion.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_io_warnings.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_layers.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_obsmvarm.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_obspvarp.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_raw.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_repr.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_transpose.py +0 -0
- {anndata-0.11.4 → anndata-0.12.0rc1}/tests/test_uns.py +0 -0
- {anndata-0.11.4 → 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:
|
|
@@ -27,14 +27,14 @@ jobs:
|
|
|
27
27
|
strategy:
|
|
28
28
|
matrix:
|
|
29
29
|
include:
|
|
30
|
-
- python-version: '3.
|
|
30
|
+
- python-version: '3.13'
|
|
31
31
|
test-type: coverage
|
|
32
|
-
- python-version: '3.
|
|
32
|
+
- python-version: '3.11'
|
|
33
33
|
test-type: standard
|
|
34
|
-
- python-version: '3.
|
|
34
|
+
- python-version: '3.13'
|
|
35
35
|
dependencies-version: pre-release
|
|
36
36
|
test-type: strict-warning
|
|
37
|
-
- python-version: '3.
|
|
37
|
+
- python-version: '3.11'
|
|
38
38
|
dependencies-version: minimum
|
|
39
39
|
test-type: coverage
|
|
40
40
|
steps:
|
|
@@ -56,19 +56,18 @@ jobs:
|
|
|
56
56
|
|
|
57
57
|
- name: Install dependencies
|
|
58
58
|
if: matrix.dependencies-version == null
|
|
59
|
-
run: uv pip install --system --compile "anndata[dev,test] @ ." -c ci/constraints.txt
|
|
59
|
+
run: uv pip install --system --compile "anndata[dev,test-full] @ ." -c ci/constraints.txt
|
|
60
60
|
|
|
61
61
|
- name: Install minimum dependencies
|
|
62
62
|
if: matrix.dependencies-version == 'minimum'
|
|
63
63
|
run: |
|
|
64
64
|
uv pip install --system --compile tomli packaging
|
|
65
|
-
|
|
66
65
|
deps=$(python3 ci/scripts/min-deps.py pyproject.toml --extra dev test)
|
|
67
66
|
uv pip install --system --compile $deps "anndata @ ."
|
|
68
67
|
|
|
69
68
|
- name: Install dependencies release candidates
|
|
70
69
|
if: matrix.dependencies-version == 'pre-release'
|
|
71
|
-
run: uv pip install -v --system --compile --pre "anndata[dev,test] @ ." -c ci/constraints.txt
|
|
70
|
+
run: uv pip install -v --system --compile --pre "anndata[dev,test-full] @ ." -c ci/constraints.txt
|
|
72
71
|
|
|
73
72
|
- name: Display installed versions
|
|
74
73
|
run: uv pip list
|
|
@@ -100,10 +99,10 @@ jobs:
|
|
|
100
99
|
fetch-depth: 0
|
|
101
100
|
filter: blob:none
|
|
102
101
|
|
|
103
|
-
- name: Set up Python 3.
|
|
102
|
+
- name: Set up Python 3.13
|
|
104
103
|
uses: actions/setup-python@v5
|
|
105
104
|
with:
|
|
106
|
-
python-version: '3.
|
|
105
|
+
python-version: '3.13'
|
|
107
106
|
|
|
108
107
|
- name: Install build tools and requirements
|
|
109
108
|
run: |
|
|
@@ -69,7 +69,8 @@ jobs:
|
|
|
69
69
|
- name: Install Python
|
|
70
70
|
uses: actions/setup-python@v5
|
|
71
71
|
with:
|
|
72
|
-
|
|
72
|
+
# https://github.com/cupy/cupy/issues/8651 cupy does not support python3.13 yet
|
|
73
|
+
python-version: "3.12"
|
|
73
74
|
|
|
74
75
|
- name: Install UV
|
|
75
76
|
uses: astral-sh/setup-uv@v5
|
|
@@ -1,6 +1,6 @@
|
|
|
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
|
|
@@ -18,30 +18,31 @@ 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.
|
|
31
|
+
Requires-Dist: numpy>=1.25
|
|
32
32
|
Requires-Dist: packaging>=24.2
|
|
33
|
-
Requires-Dist: pandas!=2.1.0rc0,!=2.1.2,>=
|
|
34
|
-
Requires-Dist: scipy>1.
|
|
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.*,<2025.2.0,>=
|
|
41
|
+
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=2023.5.1; extra == 'dask'
|
|
41
42
|
Provides-Extra: dev
|
|
42
43
|
Requires-Dist: awkward>=2.3; extra == 'dev'
|
|
43
44
|
Requires-Dist: boltons; extra == 'dev'
|
|
44
|
-
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=
|
|
45
|
+
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=2023.5.1; extra == 'dev'
|
|
45
46
|
Requires-Dist: dask[distributed]; extra == 'dev'
|
|
46
47
|
Requires-Dist: filelock; extra == 'dev'
|
|
47
48
|
Requires-Dist: hatch-vcs; extra == 'dev'
|
|
@@ -51,20 +52,20 @@ Requires-Dist: loompy>=3.0.5; extra == 'dev'
|
|
|
51
52
|
Requires-Dist: matplotlib; extra == 'dev'
|
|
52
53
|
Requires-Dist: openpyxl; extra == 'dev'
|
|
53
54
|
Requires-Dist: pyarrow; extra == 'dev'
|
|
54
|
-
Requires-Dist: pytest-cov
|
|
55
|
+
Requires-Dist: pytest-cov; extra == 'dev'
|
|
55
56
|
Requires-Dist: pytest-memray; extra == 'dev'
|
|
56
57
|
Requires-Dist: pytest-mock; extra == 'dev'
|
|
57
58
|
Requires-Dist: pytest-randomly; extra == 'dev'
|
|
58
59
|
Requires-Dist: pytest-xdist[psutil]; extra == 'dev'
|
|
59
60
|
Requires-Dist: pytest<8.3.4,>=8.2; extra == 'dev'
|
|
60
|
-
Requires-Dist: scanpy>=1.
|
|
61
|
+
Requires-Dist: scanpy>=1.10; extra == 'dev'
|
|
61
62
|
Requires-Dist: scikit-learn; extra == 'dev'
|
|
62
63
|
Requires-Dist: towncrier>=24.8.0; extra == 'dev'
|
|
63
|
-
Requires-Dist: zarr<3; extra == 'dev'
|
|
64
64
|
Provides-Extra: dev-doc
|
|
65
65
|
Requires-Dist: towncrier>=24.8.0; extra == 'dev-doc'
|
|
66
66
|
Provides-Extra: doc
|
|
67
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'
|
|
68
69
|
Requires-Dist: ipython; extra == 'doc'
|
|
69
70
|
Requires-Dist: myst-nb; extra == 'doc'
|
|
70
71
|
Requires-Dist: myst-parser; extra == 'doc'
|
|
@@ -79,13 +80,17 @@ Requires-Dist: sphinx-toolbox>=3.8.0; extra == 'doc'
|
|
|
79
80
|
Requires-Dist: sphinx>=8.2.1; extra == 'doc'
|
|
80
81
|
Requires-Dist: sphinxext-opengraph; extra == 'doc'
|
|
81
82
|
Requires-Dist: towncrier>=24.8.0; extra == 'doc'
|
|
82
|
-
Requires-Dist: zarr<3; extra == 'doc'
|
|
83
83
|
Provides-Extra: gpu
|
|
84
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'
|
|
85
90
|
Provides-Extra: test
|
|
86
91
|
Requires-Dist: awkward>=2.3; extra == 'test'
|
|
87
92
|
Requires-Dist: boltons; extra == 'test'
|
|
88
|
-
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=
|
|
93
|
+
Requires-Dist: dask[array]!=2024.8.*,!=2024.9.*,<2025.2.0,>=2023.5.1; extra == 'test'
|
|
89
94
|
Requires-Dist: dask[distributed]; extra == 'test'
|
|
90
95
|
Requires-Dist: filelock; extra == 'test'
|
|
91
96
|
Requires-Dist: httpx; extra == 'test'
|
|
@@ -94,18 +99,40 @@ Requires-Dist: loompy>=3.0.5; extra == 'test'
|
|
|
94
99
|
Requires-Dist: matplotlib; extra == 'test'
|
|
95
100
|
Requires-Dist: openpyxl; extra == 'test'
|
|
96
101
|
Requires-Dist: pyarrow; extra == 'test'
|
|
97
|
-
Requires-Dist: pytest-cov
|
|
102
|
+
Requires-Dist: pytest-cov; extra == 'test'
|
|
98
103
|
Requires-Dist: pytest-memray; extra == 'test'
|
|
99
104
|
Requires-Dist: pytest-mock; extra == 'test'
|
|
100
105
|
Requires-Dist: pytest-randomly; extra == 'test'
|
|
101
106
|
Requires-Dist: pytest-xdist[psutil]; extra == 'test'
|
|
102
107
|
Requires-Dist: pytest<8.3.4,>=8.2; extra == 'test'
|
|
103
|
-
Requires-Dist: scanpy>=1.
|
|
108
|
+
Requires-Dist: scanpy>=1.10; extra == 'test'
|
|
104
109
|
Requires-Dist: scikit-learn; extra == 'test'
|
|
105
|
-
|
|
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'
|
|
106
133
|
Description-Content-Type: text/markdown
|
|
107
134
|
|
|
108
|
-
[](https://github.com/scverse/anndata/actions)
|
|
109
136
|
[](https://anaconda.org/conda-forge/anndata)
|
|
110
137
|
[](https://codecov.io/gh/scverse/anndata)
|
|
111
138
|
[](https://anndata.readthedocs.io)
|
|
@@ -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)
|
|
@@ -2,22 +2,17 @@
|
|
|
2
2
|
// The version of the config file format. Do not change, unless
|
|
3
3
|
// you know what you are doing.
|
|
4
4
|
"version": 1,
|
|
5
|
-
|
|
6
5
|
// The name of the project being benchmarked
|
|
7
6
|
"project": "anndata",
|
|
8
|
-
|
|
9
7
|
// The project's homepage
|
|
10
8
|
"project_url": "https://anndata.readthedocs.io/",
|
|
11
|
-
|
|
12
9
|
// The URL or local path of the source code repository for the
|
|
13
10
|
// project being benchmarked
|
|
14
11
|
"repo": "../../anndata",
|
|
15
|
-
|
|
16
12
|
// The Python project's subdirectory in your repo. If missing or
|
|
17
13
|
// the empty string, the project is assumed to be located at the root
|
|
18
14
|
// of the repository.
|
|
19
15
|
// "repo_subdir": "",
|
|
20
|
-
|
|
21
16
|
// Customizable commands for building, installing, and
|
|
22
17
|
// uninstalling the project. See asv.conf.json documentation.
|
|
23
18
|
//
|
|
@@ -27,40 +22,32 @@
|
|
|
27
22
|
"python -m pip install build",
|
|
28
23
|
"python -m build --wheel -o {build_cache_dir} {build_dir}",
|
|
29
24
|
],
|
|
30
|
-
|
|
31
25
|
// List of branches to benchmark. If not provided, defaults to "master"
|
|
32
26
|
// (for git) or "default" (for mercurial).
|
|
33
27
|
"branches": ["main"], // for git
|
|
34
28
|
// "branches": ["default"], // for mercurial
|
|
35
|
-
|
|
36
29
|
// The DVCS being used. If not set, it will be automatically
|
|
37
30
|
// determined from "repo" by looking at the protocol in the URL
|
|
38
31
|
// (if remote), or by looking for special directories, such as
|
|
39
32
|
// ".git" (if local).
|
|
40
33
|
"dvcs": "git",
|
|
41
|
-
|
|
42
34
|
// The tool to use to create environments. May be "conda",
|
|
43
35
|
// "virtualenv" or other value depending on the plugins in use.
|
|
44
36
|
// If missing or the empty string, the tool will be automatically
|
|
45
37
|
// determined by looking for tools on the PATH environment
|
|
46
38
|
// variable.
|
|
47
39
|
"environment_type": "mamba",
|
|
48
|
-
|
|
49
40
|
// timeout in seconds for installing any dependencies in environment
|
|
50
41
|
// defaults to 10 min
|
|
51
42
|
//"install_timeout": 600,
|
|
52
|
-
|
|
53
43
|
// the base URL to show a commit for the project.
|
|
54
44
|
"show_commit_url": "https://github.com/theislab/anndata/commit/",
|
|
55
|
-
|
|
56
45
|
// The Pythons you'd like to test against. If not provided, defaults
|
|
57
46
|
// to the current version of Python used to run `asv`.
|
|
58
47
|
// "pythons": ["2.7", "3.6"],
|
|
59
|
-
|
|
60
48
|
// The list of conda channel names to be searched for benchmark
|
|
61
49
|
// dependency packages in the specified order
|
|
62
50
|
"conda_channels": ["conda-forge", "defaults"],
|
|
63
|
-
|
|
64
51
|
// The matrix of dependencies to test. Each key is the name of a
|
|
65
52
|
// package (in PyPI) and the values are version numbers. An empty
|
|
66
53
|
// list or empty string indicates to just test against the default
|
|
@@ -79,14 +66,13 @@
|
|
|
79
66
|
"natsort": [""],
|
|
80
67
|
"pandas": [""],
|
|
81
68
|
"memory_profiler": [""],
|
|
82
|
-
"zarr": ["
|
|
69
|
+
"zarr": [""],
|
|
83
70
|
"pytoml": [""],
|
|
84
71
|
"pytest": [""],
|
|
85
72
|
"pooch": [""],
|
|
86
73
|
// "scanpy": [""],
|
|
87
74
|
// "psutil": [""]
|
|
88
75
|
},
|
|
89
|
-
|
|
90
76
|
// Combinations of libraries/python versions can be excluded/included
|
|
91
77
|
// from the set to test. Each entry is a dictionary containing additional
|
|
92
78
|
// key-value pairs to include/exclude.
|
|
@@ -119,31 +105,24 @@
|
|
|
119
105
|
// // additional env if run on windows+conda
|
|
120
106
|
// {"platform": "win32", "environment_type": "mamba", "python": "2.7", "libpython": ""},
|
|
121
107
|
// ],
|
|
122
|
-
|
|
123
108
|
// The directory (relative to the current directory) that benchmarks are
|
|
124
109
|
// stored in. If not provided, defaults to "benchmarks"
|
|
125
110
|
// "benchmark_dir": "benchmarks",
|
|
126
|
-
|
|
127
111
|
// The directory (relative to the current directory) to cache the Python
|
|
128
112
|
// environments in. If not provided, defaults to "env"
|
|
129
113
|
"env_dir": ".asv/env",
|
|
130
|
-
|
|
131
114
|
// The directory (relative to the current directory) that raw benchmark
|
|
132
115
|
// results are stored in. If not provided, defaults to "results".
|
|
133
116
|
"results_dir": ".asv/results",
|
|
134
|
-
|
|
135
117
|
// The directory (relative to the current directory) that the html tree
|
|
136
118
|
// should be written to. If not provided, defaults to "html".
|
|
137
119
|
"html_dir": ".asv/html",
|
|
138
|
-
|
|
139
120
|
// The number of characters to retain in the commit hashes.
|
|
140
121
|
// "hash_length": 8,
|
|
141
|
-
|
|
142
122
|
// `asv` will cache results of the recent builds in each
|
|
143
123
|
// environment, making them faster to install next time. This is
|
|
144
124
|
// the number of builds to keep, per environment.
|
|
145
125
|
// "build_cache_size": 2,
|
|
146
|
-
|
|
147
126
|
// The commits after which the regression search in `asv publish`
|
|
148
127
|
// should start looking for regressions. Dictionary whose keys are
|
|
149
128
|
// regexps matching to benchmark names, and values corresponding to
|
|
@@ -156,7 +135,6 @@
|
|
|
156
135
|
// "some_benchmark": "352cdf", // Consider regressions only after this commit
|
|
157
136
|
// "another_benchmark": null, // Skip regression detection altogether
|
|
158
137
|
// },
|
|
159
|
-
|
|
160
138
|
// The thresholds for relative change in results, after which `asv
|
|
161
139
|
// publish` starts reporting regressions. Dictionary of the same
|
|
162
140
|
// form as in ``regressions_first_commits``, with values
|
|
@@ -15,8 +15,14 @@ class GarbargeCollectionSuite:
|
|
|
15
15
|
def display_top(snapshot, key_type="lineno"):
|
|
16
16
|
snapshot = snapshot.filter_traces(
|
|
17
17
|
(
|
|
18
|
-
tracemalloc.Filter(
|
|
19
|
-
|
|
18
|
+
tracemalloc.Filter(
|
|
19
|
+
inclusive=False,
|
|
20
|
+
filename_pattern="<frozen importlib._bootstrap>",
|
|
21
|
+
),
|
|
22
|
+
tracemalloc.Filter(
|
|
23
|
+
inclusive=False,
|
|
24
|
+
filename_pattern="<unknown>",
|
|
25
|
+
),
|
|
20
26
|
)
|
|
21
27
|
)
|
|
22
28
|
top_stats = snapshot.statistics(key_type)
|
|
@@ -10,17 +10,13 @@ from __future__ import annotations
|
|
|
10
10
|
|
|
11
11
|
import argparse
|
|
12
12
|
import sys
|
|
13
|
+
import tomllib
|
|
13
14
|
from collections import deque
|
|
14
15
|
from contextlib import ExitStack
|
|
15
16
|
from functools import cached_property
|
|
16
17
|
from pathlib import Path
|
|
17
18
|
from typing import TYPE_CHECKING
|
|
18
19
|
|
|
19
|
-
if sys.version_info >= (3, 11):
|
|
20
|
-
import tomllib
|
|
21
|
-
else:
|
|
22
|
-
import tomli as tomllib
|
|
23
|
-
|
|
24
20
|
from packaging.requirements import Requirement
|
|
25
21
|
from packaging.version import Version
|
|
26
22
|
|
|
@@ -39,6 +35,8 @@ def min_dep(req: Requirement) -> Requirement:
|
|
|
39
35
|
|
|
40
36
|
>>> min_dep(Requirement("numpy>=1.0"))
|
|
41
37
|
<Requirement('numpy==1.0.*')>
|
|
38
|
+
>>> min_dep(Requirement("numpy<3.0"))
|
|
39
|
+
<Requirement('numpy<3.0')>
|
|
42
40
|
"""
|
|
43
41
|
req_name = req.name
|
|
44
42
|
if req.extras:
|
|
@@ -48,8 +46,8 @@ def min_dep(req: Requirement) -> Requirement:
|
|
|
48
46
|
spec for spec in req.specifier if spec.operator in {"==", "~=", ">=", ">"}
|
|
49
47
|
]
|
|
50
48
|
if not filter_specs:
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
# TODO: handle markers
|
|
50
|
+
return Requirement(f"{req_name}{req.specifier}")
|
|
53
51
|
min_version = Version("0.0.0.a1")
|
|
54
52
|
for spec in filter_specs:
|
|
55
53
|
if spec.operator in {">", ">=", "~="}:
|
|
@@ -13,6 +13,8 @@ The central class:
|
|
|
13
13
|
AnnData
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
+
(combining-api)=
|
|
17
|
+
|
|
16
18
|
## Combining
|
|
17
19
|
|
|
18
20
|
Combining {class}`AnnData` objects.
|
|
@@ -25,6 +27,8 @@ See also the section on concatenation.
|
|
|
25
27
|
concat
|
|
26
28
|
```
|
|
27
29
|
|
|
30
|
+
(reading-api)=
|
|
31
|
+
|
|
28
32
|
## Reading
|
|
29
33
|
|
|
30
34
|
Reading anndata’s native formats `.h5ad` and `zarr`.
|
|
@@ -66,6 +70,8 @@ You might have more success by assembling the {class}`AnnData` object yourself f
|
|
|
66
70
|
io.read_umi_tools
|
|
67
71
|
```
|
|
68
72
|
|
|
73
|
+
(writing-api)=
|
|
74
|
+
|
|
69
75
|
## Writing
|
|
70
76
|
|
|
71
77
|
Writing a complete {class}`AnnData` object to disk in anndata’s native formats `.h5ad` and `zarr`.
|
|
@@ -146,7 +152,8 @@ Low level methods for reading and writing elements of an {class}`AnnData` object
|
|
|
146
152
|
.. autosummary::
|
|
147
153
|
:toctree: generated/
|
|
148
154
|
|
|
149
|
-
experimental.
|
|
155
|
+
experimental.read_elem_lazy
|
|
156
|
+
experimental.read_lazy
|
|
150
157
|
```
|
|
151
158
|
|
|
152
159
|
Utilities for customizing the IO process:
|
|
@@ -171,8 +178,34 @@ Types used by the former:
|
|
|
171
178
|
experimental.ReadCallback
|
|
172
179
|
experimental.WriteCallback
|
|
173
180
|
experimental.StorageType
|
|
181
|
+
experimental.backed._lazy_arrays.MaskedArray
|
|
182
|
+
experimental.backed._lazy_arrays.CategoricalArray
|
|
183
|
+
experimental.backed._xarray.Dataset2D
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
(extensions-api)=
|
|
187
|
+
|
|
188
|
+
## Extensions
|
|
189
|
+
|
|
190
|
+
```{eval-rst}
|
|
191
|
+
.. autosummary::
|
|
192
|
+
:toctree: generated/
|
|
193
|
+
|
|
194
|
+
register_anndata_namespace
|
|
195
|
+
|
|
174
196
|
```
|
|
175
197
|
|
|
198
|
+
Types used by the former:
|
|
199
|
+
|
|
200
|
+
```{eval-rst}
|
|
201
|
+
.. autosummary::
|
|
202
|
+
:toctree: generated/
|
|
203
|
+
|
|
204
|
+
types.ExtensionNamespace
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
(errors-api)=
|
|
208
|
+
|
|
176
209
|
## Errors and warnings
|
|
177
210
|
|
|
178
211
|
```{eval-rst}
|
|
@@ -182,6 +215,8 @@ Types used by the former:
|
|
|
182
215
|
ImplicitModificationWarning
|
|
183
216
|
```
|
|
184
217
|
|
|
218
|
+
(settings-api)=
|
|
219
|
+
|
|
185
220
|
## Settings
|
|
186
221
|
|
|
187
222
|
```{eval-rst}
|
|
@@ -192,6 +227,8 @@ Types used by the former:
|
|
|
192
227
|
settings.override
|
|
193
228
|
```
|
|
194
229
|
|
|
230
|
+
(types-api)=
|
|
231
|
+
|
|
195
232
|
## Custom Types/Classes for Readable/Writeable Elements
|
|
196
233
|
|
|
197
234
|
```{eval-rst}
|
|
@@ -75,9 +75,10 @@ nb_execution_mode = "off"
|
|
|
75
75
|
# Generate the API documentation when building
|
|
76
76
|
autosummary_generate = True
|
|
77
77
|
autodoc_member_order = "bysource"
|
|
78
|
+
autodoc_mock_imports = ["torch"]
|
|
79
|
+
# autodoc_default_flags = ['members']
|
|
78
80
|
issues_github_path = "scverse/anndata"
|
|
79
81
|
rtd_links_prefix = PurePosixPath("src")
|
|
80
|
-
# autodoc_default_flags = ['members']
|
|
81
82
|
napoleon_google_docstring = False
|
|
82
83
|
napoleon_numpy_docstring = True
|
|
83
84
|
napoleon_include_init_with_doc = False
|
|
@@ -112,9 +113,14 @@ intersphinx_mapping = dict(
|
|
|
112
113
|
python=("https://docs.python.org/3", None),
|
|
113
114
|
scipy=("https://docs.scipy.org/doc/scipy", None),
|
|
114
115
|
sklearn=("https://scikit-learn.org/stable", None),
|
|
116
|
+
# TODO: move back to stable once `ObjectStore` is released
|
|
117
|
+
zarr=("https://zarr.readthedocs.io/en/latest/", None),
|
|
115
118
|
xarray=("https://docs.xarray.dev/en/stable", None),
|
|
116
|
-
|
|
119
|
+
obstore=("https://developmentseed.org/obstore/latest/", None),
|
|
120
|
+
kvikio=("https://docs.rapids.ai/api/kvikio/stable/", None),
|
|
121
|
+
zarrs=("https://zarrs-python.readthedocs.io/en/stable/", None),
|
|
117
122
|
)
|
|
123
|
+
|
|
118
124
|
qualname_overrides = {
|
|
119
125
|
"h5py._hl.group.Group": "h5py.Group",
|
|
120
126
|
"h5py._hl.files.File": "h5py.File",
|
|
@@ -129,7 +135,11 @@ qualname_overrides = {
|
|
|
129
135
|
"anndata._types.WriteCallback": "anndata.experimental.WriteCallback",
|
|
130
136
|
"anndata._types.Read": "anndata.experimental.Read",
|
|
131
137
|
"anndata._types.Write": "anndata.experimental.Write",
|
|
132
|
-
"zarr.
|
|
138
|
+
"zarr.core.array.Array": "zarr.Array",
|
|
139
|
+
"zarr.core.group.Group": "zarr.Group",
|
|
140
|
+
# Buffer is not yet exported, so the buffer class registry is the closest thing
|
|
141
|
+
"zarr.core.buffer.core.Buffer": "zarr.registry.Registry",
|
|
142
|
+
"zarr.storage._common.StorePath": "zarr.storage.StorePath",
|
|
133
143
|
"anndata.compat.DaskArray": "dask.array.Array",
|
|
134
144
|
"anndata.compat.CupyArray": "cupy.ndarray",
|
|
135
145
|
"anndata.compat.CupySparseMatrix": "cupyx.scipy.sparse.spmatrix",
|
|
@@ -139,6 +149,7 @@ qualname_overrides = {
|
|
|
139
149
|
"pandas.DataFrame.loc": ("py:attr", "pandas.DataFrame.loc"),
|
|
140
150
|
# should be fixed soon: https://github.com/tox-dev/sphinx-autodoc-typehints/pull/516
|
|
141
151
|
"types.EllipsisType": ("py:data", "types.EllipsisType"),
|
|
152
|
+
"pathlib._local.Path": "pathlib.Path",
|
|
142
153
|
}
|
|
143
154
|
autodoc_type_aliases = dict(
|
|
144
155
|
NDArray=":data:`~numpy.typing.NDArray`",
|
|
@@ -16,7 +16,7 @@ def autodoc_skip_member(
|
|
|
16
16
|
what: Literal["module", "class", "exception", "function", "method", "attribute"],
|
|
17
17
|
name: str,
|
|
18
18
|
obj: object,
|
|
19
|
-
skip: bool,
|
|
19
|
+
skip: bool, # noqa: FBT001
|
|
20
20
|
options: Options,
|
|
21
21
|
):
|
|
22
22
|
if what == "method" and getattr(obj, "__isabstractmethod__", False):
|
|
@@ -91,7 +91,7 @@ Using this information, we're able to dispatch onto readers for the different el
|
|
|
91
91
|
## Dense arrays
|
|
92
92
|
|
|
93
93
|
Dense numeric arrays have the most simple representation on disk,
|
|
94
|
-
as they have native equivalents in H5py {doc}`h5py:high/dataset` and Zarr {
|
|
94
|
+
as they have native equivalents in H5py {doc}`h5py:high/dataset` and Zarr {doc}`Arrays <zarr:user-guide/arrays>`.
|
|
95
95
|
We can see an example of this with dimensionality reductions stored in the `obsm` group:
|
|
96
96
|
|
|
97
97
|
`````{tab-set}
|
|
@@ -40,7 +40,7 @@ Release candidates:
|
|
|
40
40
|
- {guilabel}`rc1` Allow `axis` parameter of e.g. {func}`anndata.concat` to accept `'obs'` and `'var'` {user}`flying-sheep` ({pr}`1244`)
|
|
41
41
|
- {guilabel}`rc1` Add `settings` object with methods for altering internally-used options, like checking for uniqueness on `obs`' index {user}`ilan-gold` ({pr}`1270`)
|
|
42
42
|
- {guilabel}`rc1` Add {attr}`~anndata.settings.remove_unused_categories` option to {attr}`anndata.settings` to override current behavior {user}`ilan-gold` ({pr}`1340`)
|
|
43
|
-
- {guilabel}`rc1` Add
|
|
43
|
+
- {guilabel}`rc1` Add `~anndata.experimental.read_elem_as_dask` function to handle i/o with sparse and dense arrays {user}`ilan-gold` ({pr}`1469`)
|
|
44
44
|
- {guilabel}`rc1` Add ability to convert strings to categoricals on write in {meth}`~anndata.AnnData.write_h5ad` and {meth}`~anndata.AnnData.write_zarr` via `convert_strings_to_categoricals` parameter {user}` falexwolf` ({pr}`1474`)
|
|
45
45
|
- {guilabel}`rc1` Add {attr}`~anndata.settings.check_uniqueness` option to {attr}`anndata.settings` to override current behavior {user}`ilan-gold` ({pr}`1507`)
|
|
46
46
|
- {guilabel}`rc1` Add functionality to write from GPU {class}`dask.array.Array` to disk {user}`ilan-gold` ({pr}`1550`)
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
### Bug fixes
|
|
5
5
|
|
|
6
6
|
- Remove upper pin on `dask` and exclude versions broken with sparse indexing {user}`ilan-gold` ({pr}`1725`)
|
|
7
|
-
- Fix chunking with -1 in `chunks` argument of
|
|
7
|
+
- Fix chunking with -1 in `chunks` argument of `~anndata.experimental.read_elem_as_dask` {user}`ilan-gold` ({pr}`1743`)
|
|
8
8
|
- Fix `cupy<0.13` imports in non-gpu environments {user}`ilan-gold` ({pr}`1754`)
|