From nobody Sun Aug 21 20:16:11 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4M9mwC5qzSz4Zfvf; Sun, 21 Aug 2022 20:16:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4M9mwC5MJ1z3Zvf; Sun, 21 Aug 2022 20:16:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1661112971; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HUZsQu7Rr6x2pJdn1XM0E8uYcBoNoNVtn25iXkZPVak=; b=LKPOfJummK/V1qKcNTIrAoL+htqC1gFHxi0qJgXAI0iA7apKaO+YMrCYpDOmvUgBld9xYl q7JMeam2fJg6UJCiWJUL0NaIp2eMA/qwuIw2i86wFSXFB18D19pPcyfbB+bOHHT8gHpjWx aeNu7u7UZqr2i+i4dWO3zRWSRFknJK0RLxxDlPVcpyOwt5rz/618Aq+MJzrOhFJPv6rs/+ 1ASk6VCEs42EnOfsDZzaMHe4gSyjbGcmDDCXNf8FeEAsuZGFW6iHVCVcuZh+QzZ/Rh4TYP fddfAOdxvSfD9jJxdRT7sy25U6vlncaZzRL3aobHdNtiQ7/SRtp0wNXEzInjtA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4M9mwC4LdvzNJ0; Sun, 21 Aug 2022 20:16:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 27LKGBkK050851; Sun, 21 Aug 2022 20:16:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 27LKGBDZ050850; Sun, 21 Aug 2022 20:16:11 GMT (envelope-from git) Date: Sun, 21 Aug 2022 20:16:11 GMT Message-Id: <202208212016.27LKGBDZ050850@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Yuri Victorovich Subject: git: af737bbb0d46 - main - misc/py-anndata: New port: Annotated multivariate observation data List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: yuri X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: af737bbb0d4683dd9e831406757e826dd3cdf5df Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1661112971; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HUZsQu7Rr6x2pJdn1XM0E8uYcBoNoNVtn25iXkZPVak=; b=jttMl+BZAvTxxHaj9ZVSCXecvLAwhmKGANkh2pFdQQtJcvS3q/x/PkspsKufx+YJKu5rRQ AdkNRL77fKhsDtuJJZvrtD+ZG2RL+8bZYYoAeQHiQhSTWAifko+FAxL35neMhASGHm4Vnk RsLxSxyNcpGe2TiBD5PeIMCDMDn5MmK/+lpnwxe2BOI8V1hralU7VwREq3AN8gt9LU92dH 3NIAZNOlJN5msoPv/vtjJuEDoHVvAZYXh97/n0WJXfipgTW3TwjuGFrXxcBjQc18cXvXe9 b5UIPh/CkJ7ZkNSJgaT+ZLDuumOB7T7+IzWEXLJx7XYVU2kda81m80XRqxR7IQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1661112971; a=rsa-sha256; cv=none; b=tKhlmHIA2Vp/q82Q3zf5ZyYAZat7q0O2lN1NVCLGhyoUCtasUioJSjQk1XFkp/1O/4WH6m zoLKPxQRjEYzRr2YMBhzc/3HoaRurzqLHln1uE/B2WuOvnf/vuTrsDjIw0k0WppSNgXNqm 724B/fLGUqksrbfkGl1/Yu95RaKHAZsav+ujRalX30jjhhPWftnnlgAMThcUGk/5eiaAza 80psLjCbHs2LJiHsvJo2bk0cmahSwlPYZlUt1RU5vAqaQpzYRJF2OHN0QtZAz0i9i1tKee oLOI+qjyq5E70vFwn45fwU0JiPbj/lTP6BexOGOvD16lB6eSr1M2hX8ikjWwWw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=af737bbb0d4683dd9e831406757e826dd3cdf5df commit af737bbb0d4683dd9e831406757e826dd3cdf5df Author: Yuri Victorovich AuthorDate: 2022-08-21 19:53:14 +0000 Commit: Yuri Victorovich CommitDate: 2022-08-21 20:16:06 +0000 misc/py-anndata: New port: Annotated multivariate observation data --- misc/Makefile | 1 + misc/py-anndata/Makefile | 30 +++++++++++++ misc/py-anndata/distinfo | 3 ++ misc/py-anndata/pkg-descr | 4 ++ misc/py-anndata/pkg-plist | 111 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 149 insertions(+) diff --git a/misc/Makefile b/misc/Makefile index e2c15c34bbe7..cdd53e136006 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -373,6 +373,7 @@ SUBDIR += py-SimpleSoapy SUBDIR += py-SoapySDR SUBDIR += py-alive-progress + SUBDIR += py-anndata SUBDIR += py-boost-histogram SUBDIR += py-cinder SUBDIR += py-colorbrewer diff --git a/misc/py-anndata/Makefile b/misc/py-anndata/Makefile new file mode 100644 index 000000000000..3335265a940a --- /dev/null +++ b/misc/py-anndata/Makefile @@ -0,0 +1,30 @@ +PORTNAME= anndata +DISTVERSION= 0.8.0 +CATEGORIES= misc python +MASTER_SITES= CHEESESHOP +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Annotated multivariate observation data + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +PY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}h5py>=3:science/py-h5py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}natsort>0:devel/py-natsort@${PY_FLAVOR} \ + ${PYNUMPY} \ + ${PYTHON_PKGNAMEPREFIX}packaging>=20:devel/py-packaging@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pandas>=1.1.1:math/py-pandas@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}scipy>1.4:science/py-scipy@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}xlrd>0:textproc/py-xlrd@${PY_FLAVOR} +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>0:devel/py-flit-core@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}setuptools_scm>0:devel/py-setuptools_scm@${PY_FLAVOR} \ + ${PY_DEPENDS} +RUN_DEPENDS= ${PY_DEPENDS} + +USES= python:3.8+ +USE_PYTHON= build + +NO_ARCH= yes + +.include diff --git a/misc/py-anndata/distinfo b/misc/py-anndata/distinfo new file mode 100644 index 000000000000..96efd6445fb7 --- /dev/null +++ b/misc/py-anndata/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1659718701 +SHA256 (anndata-0.8.0.tar.gz) = 94d2cc6f76c0317c0ac28564e3092b313b7ad19c737d66701961f3e620b9066e +SIZE (anndata-0.8.0.tar.gz) = 84130 diff --git a/misc/py-anndata/pkg-descr b/misc/py-anndata/pkg-descr new file mode 100644 index 000000000000..77423318ef3c --- /dev/null +++ b/misc/py-anndata/pkg-descr @@ -0,0 +1,4 @@ +AnnData provides a scalable way of keeping track of data and learned +annotations. + +WWW: https://github.com/theislab/anndata diff --git a/misc/py-anndata/pkg-plist b/misc/py-anndata/pkg-plist new file mode 100644 index 000000000000..e6490928663e --- /dev/null +++ b/misc/py-anndata/pkg-plist @@ -0,0 +1,111 @@ +%%PYTHON_SITELIBDIR%%/anndata-0.8.0.dist-info/LICENSE +%%PYTHON_SITELIBDIR%%/anndata-0.8.0.dist-info/METADATA +%%PYTHON_SITELIBDIR%%/anndata-0.8.0.dist-info/RECORD +%%PYTHON_SITELIBDIR%%/anndata-0.8.0.dist-info/WHEEL +%%PYTHON_SITELIBDIR%%/anndata/__init__.py +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/_metadata%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/_metadata%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/_warnings%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/_warnings%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/core%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/core%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/logging%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/logging%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/readwrite%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/readwrite%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__init__.py +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/access%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/access%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/aligned_mapping%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/aligned_mapping%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/anndata%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/anndata%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/file_backing%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/file_backing%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/index%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/index%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/merge%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/merge%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/raw%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/raw%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/sparse_dataset%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/sparse_dataset%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/views%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/__pycache__/views%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_core/access.py +%%PYTHON_SITELIBDIR%%/anndata/_core/aligned_mapping.py +%%PYTHON_SITELIBDIR%%/anndata/_core/anndata.py +%%PYTHON_SITELIBDIR%%/anndata/_core/file_backing.py +%%PYTHON_SITELIBDIR%%/anndata/_core/index.py +%%PYTHON_SITELIBDIR%%/anndata/_core/merge.py +%%PYTHON_SITELIBDIR%%/anndata/_core/raw.py +%%PYTHON_SITELIBDIR%%/anndata/_core/sparse_dataset.py +%%PYTHON_SITELIBDIR%%/anndata/_core/views.py +%%PYTHON_SITELIBDIR%%/anndata/_io/__init__.py +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/h5ad%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/h5ad%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/read%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/read%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/write%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/write%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/zarr%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/__pycache__/zarr%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/h5ad.py +%%PYTHON_SITELIBDIR%%/anndata/_io/read.py +%%PYTHON_SITELIBDIR%%/anndata/_io/specs/__init__.py +%%PYTHON_SITELIBDIR%%/anndata/_io/specs/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/specs/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/specs/__pycache__/methods%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/specs/__pycache__/methods%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/specs/__pycache__/registry%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/specs/__pycache__/registry%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/_io/specs/methods.py +%%PYTHON_SITELIBDIR%%/anndata/_io/specs/registry.py +%%PYTHON_SITELIBDIR%%/anndata/_io/utils.py +%%PYTHON_SITELIBDIR%%/anndata/_io/write.py +%%PYTHON_SITELIBDIR%%/anndata/_io/zarr.py +%%PYTHON_SITELIBDIR%%/anndata/_metadata.py +%%PYTHON_SITELIBDIR%%/anndata/_warnings.py +%%PYTHON_SITELIBDIR%%/anndata/compat/__init__.py +%%PYTHON_SITELIBDIR%%/anndata/compat/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/compat/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/compat/__pycache__/_overloaded_dict%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/compat/__pycache__/_overloaded_dict%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/compat/_overloaded_dict.py +%%PYTHON_SITELIBDIR%%/anndata/core.py +%%PYTHON_SITELIBDIR%%/anndata/experimental/__init__.py +%%PYTHON_SITELIBDIR%%/anndata/experimental/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/multi_files/__init__.py +%%PYTHON_SITELIBDIR%%/anndata/experimental/multi_files/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/multi_files/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/multi_files/__pycache__/_anncollection%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/multi_files/__pycache__/_anncollection%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/multi_files/_anncollection.py +%%PYTHON_SITELIBDIR%%/anndata/experimental/pytorch/__init__.py +%%PYTHON_SITELIBDIR%%/anndata/experimental/pytorch/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/pytorch/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/pytorch/__pycache__/_annloader%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/pytorch/__pycache__/_annloader%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/experimental/pytorch/_annloader.py +%%PYTHON_SITELIBDIR%%/anndata/logging.py +%%PYTHON_SITELIBDIR%%/anndata/readwrite.py +%%PYTHON_SITELIBDIR%%/anndata/tests/__pycache__/conftest%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/tests/__pycache__/conftest%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/tests/__pycache__/helpers%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/anndata/tests/__pycache__/helpers%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/anndata/tests/adata-comments.tsv +%%PYTHON_SITELIBDIR%%/anndata/tests/adata.csv +%%PYTHON_SITELIBDIR%%/anndata/tests/conftest.py +%%PYTHON_SITELIBDIR%%/anndata/tests/helpers.py +%%PYTHON_SITELIBDIR%%/anndata/utils.py