Skip to content

Commit 2507c0b

Browse files
authored
Merge branch 'main' into main
2 parents 04853c0 + 9c85ba3 commit 2507c0b

136 files changed

Lines changed: 3580 additions & 344 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/make-json.yml

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,24 @@ on:
66
branches: [main]
77

88
concurrency:
9-
group: "pages"
9+
group: ${{ github.workflow }}-${{ github.ref }}
1010
cancel-in-progress: true
1111

1212
jobs:
1313
mkjson:
1414
runs-on: ubuntu-latest
15-
1615
steps:
17-
- name: Checkout repository
18-
uses: actions/checkout@v3
19-
- name: setup-yq
20-
run: |
21-
sudo curl -L "https://github.com/mikefarah/yq/releases/download/v4.28.2/yq_linux_amd64" > /usr/local/bin/yq
22-
sudo chmod +x /usr/local/bin/yq
23-
- name: convert to json
16+
- uses: actions/checkout@v5
17+
- uses: astral-sh/setup-uv@v7
18+
- name: Execute validation script and create output directory
2419
run: |
25-
mkdir build
26-
touch build/.nojekyll
27-
cat packages/**/meta.yaml
28-
yq -o=json packages/**/meta.yaml | jq -s . > build/ecosystem.json
20+
uvx --from ./scripts validate-registry --registry-dir packages --outdir=build
21+
env:
22+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23+
FORCE_COLOR: "1"
24+
COLUMNS: "150"
2925
- name: Upload GitHub Pages artifact
30-
uses: actions/upload-pages-artifact@v1
26+
uses: actions/upload-pages-artifact@v4
3127
with:
3228
path: "build"
3329

@@ -48,7 +44,7 @@ jobs:
4844
steps:
4945
- name: Deploy to GitHub Pages
5046
id: deployment
51-
uses: actions/deploy-pages@v1
47+
uses: actions/deploy-pages@v4
5248
- name: Trigger website build
5349
run: |
5450
curl -XPOST \

.github/workflows/register-template-repos.yml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,17 @@ jobs:
1010
register-template-repos:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v3
13+
- uses: actions/checkout@v5
1414
with:
1515
token: ${{ secrets.BOT_GH_TOKEN }}
16-
- name: Set up Python 3.11
17-
uses: actions/setup-python@v4
18-
with:
19-
python-version: "3.11"
20-
cache: "pip"
21-
cache-dependency-path: "**/pyproject.toml"
22-
- name: Install build dependencies
23-
run: python -m pip install --upgrade pip wheel
24-
- name: Install package with scripts
25-
run: pip install ./scripts
16+
- name: Install uv
17+
uses: astral-sh/setup-uv@v7
2618
- name: Update template repo registry
27-
run: register-template-repos template-repos.yml
19+
run: uvx --from ./scripts register-template-repos template-repos.yml
2820
env:
2921
GITHUB_TOKEN: "${{ secrets.BOT_GH_TOKEN }}"
22+
FORCE_COLOR: "1"
23+
COLUMNS: "150"
3024
- uses: EndBug/add-and-commit@v9
3125
with:
3226
add: ./template-repos.yml

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
.DS_STORE
22
__pycache__/
3-
.ruff_cache/
3+
.*cache/
44

55
/.vscode/
6+
.venv
7+
schema.pyi

.pre-commit-config.yaml

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ minimum_pre_commit_version: 2.16.0
88
repos:
99
# all files
1010
- repo: https://github.com/pre-commit/pre-commit-hooks
11-
rev: v5.0.0
11+
rev: v6.0.0
1212
hooks:
1313
- id: detect-private-key
1414
- id: check-ast
@@ -17,36 +17,65 @@ repos:
1717
args: [--fix=lf]
1818
- id: trailing-whitespace
1919
- id: check-case-conflict
20-
- repo: https://github.com/pre-commit/mirrors-prettier
21-
rev: v4.0.0-alpha.8
20+
- repo: https://github.com/rbubley/mirrors-prettier
21+
rev: v3.7.4
2222
hooks:
2323
- id: prettier
2424
# package metadata
2525
- repo: https://github.com/python-jsonschema/check-jsonschema
26-
rev: 0.29.4
26+
rev: 0.36.0
2727
hooks:
2828
- id: check-jsonschema
29-
files: "schema.json"
29+
files: "scripts/src/ecosystem_scripts/schema.json"
3030
args: ["--check-metaschema"]
3131
- repo: https://github.com/python-jsonschema/check-jsonschema
32-
rev: 0.29.4
32+
rev: 0.36.0
3333
hooks:
3434
- id: check-jsonschema
3535
files: "packages/.*/meta.yaml"
36-
args: ["--schemafile", "schema.json"]
36+
args: ["--schemafile", "scripts/src/ecosystem_scripts/schema.json"]
3737
- repo: local
3838
hooks:
3939
- id: forbid-to-commit
4040
name: Check files in `packages` directory
4141
entry: |
42-
Only files named `meta.yaml` are permitted in the packages directory
42+
Only `meta.yaml` and logo files are permitted in the packages directory
4343
language: fail
4444
files: "^packages/.*$"
45-
exclude: "^packages/.*/meta.yaml$"
46-
# template repo registry
45+
exclude: "^packages/.*/(meta.yaml|logo\\..*)$"
46+
# scripts
4747
- repo: https://github.com/astral-sh/ruff-pre-commit
48-
rev: v0.7.3
48+
rev: v0.14.10
4949
hooks:
50-
- id: ruff
50+
- id: ruff-check
5151
args: [--fix, --exit-non-zero-on-fix]
52+
files: ^scripts/.*$
5253
- id: ruff-format
54+
files: ^scripts/.*$
55+
- repo: https://github.com/tox-dev/pyproject-fmt
56+
rev: v2.11.1
57+
hooks:
58+
- id: pyproject-fmt
59+
- repo: https://github.com/camptocamp/jsonschema-gentypes
60+
rev: "2.13.0"
61+
hooks:
62+
- id: jsonschema-gentypes
63+
args:
64+
- --json-schema=scripts/src/ecosystem_scripts/schema.json
65+
- --python=scripts/src/ecosystem_scripts/schema.pyi
66+
files: ^scripts/.*/schema.json$
67+
- repo: https://github.com/pre-commit/mirrors-mypy
68+
rev: v1.19.1
69+
hooks:
70+
- id: mypy
71+
args: [--config-file=scripts/pyproject.toml, scripts]
72+
pass_filenames: false
73+
additional_dependencies:
74+
- httpx
75+
- httpx-retries
76+
- types-jsonschema
77+
- pillow
78+
- pygithub
79+
- types-PyYAML
80+
- rich
81+
files: ^scripts/.*$

README.md

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# Scverse Ecosystem Packages
22

3-
This repository contains the list of scverse ecosystem packages that are displayed on scverse.org.
3+
This repository contains the list of scverse ecosystem packages that are displayed on scverse.org and are part of
4+
the scverse® project.
45
The goal is to increase visibility of ecosystem packages and make it easier for users to find appropriate software.
56
Registered ecosystem packages can also get their own tag to use on the [scverse forum](https://discourse.scverse.org) for user discussion.
6-
Authors of these packages can be added the [scverse github organization](https://github.com/scverse).
7+
Authors of these packages can be added to the [scverse github organization](https://github.com/scverse).
78
In the future, we may also test releases of core packages against the test suites of ecosystem packages.
89

910
If a package is part of this list, it means it fulfills certain minimum requirements as outlined below.
@@ -15,9 +16,10 @@ It **does not** imply endorsement or that an in-depth review has been performed.
1516

1617
Submit a pull-request adding a `meta.yaml` file for your package to the `packages` directory.
1718

18-
- Please refer to other entries for examples
19-
- The full definition of available fields is available in [`schema.json`](schema.json)
20-
- Please copy the checklist from below into the pull request description and answer all questions.
19+
- Please copy the checklist from below into the pull request description and answer all questions.
20+
- Please refer to other entries for examples
21+
- The full definition of available fields is available in [`schema.json`](scripts/src/ecosystem_scripts/schema.json)
22+
- You can add a logo in svg/png/webp format if you like. Currently it is not used on our website, though.
2123

2224
## What are the requirements for an ecosystem package?
2325

@@ -37,25 +39,27 @@ Short description: XXX
3739

3840
How does the package use scverse data structures (please describe in a few sentences): XXX
3941

40-
- [ ] The code is publicly available under an [OSI-approved](https://opensource.org/licenses/alphabetical) license
41-
- [ ] The package provides versioned releases
42-
- [ ] The package can be installed from a standard registry (e.g. PyPI, conda-forge, bioconda)
43-
- [ ] Automated tests cover essential functions of the package and a reasonable range of inputs and conditions [^1]
44-
- [ ] Continuous integration (CI) automatically executes these tests on each push or pull request [^2]
45-
- [ ] The package provides API documentation via a website or README[^3]
46-
- [ ] The package uses scverse datastructures where appropriate (i.e. AnnData, MuData or SpatialData and their modality-specific extensions)
47-
- [ ] I am an author or maintainer of the tool and agree on listing the package on the scverse website
42+
- [ ] The code is publicly available under an [OSI-approved](https://opensource.org/licenses/alphabetical) license
43+
- [ ] The package provides versioned releases
44+
- [ ] The package can be installed from a standard registry (e.g. PyPI, conda-forge, bioconda)
45+
- [ ] Automated tests cover essential functions of the package and a reasonable range of inputs and conditions [^1]
46+
- [ ] Continuous integration (CI) automatically executes these tests on each push or pull request [^2]
47+
- [ ] The package provides API documentation via a website or README[^3]
48+
- [ ] The package uses scverse datastructures where appropriate (i.e. AnnData, MuData or SpatialData and their modality-specific extensions)
49+
- [ ] I am an author or maintainer of the tool and agree on listing the package on the scverse website
4850

4951
### Recommended
5052

51-
- [ ] Please announce this package on scverse communication channels (zulip, discourse, twitter)
52-
- [ ] Please tag the author(s) these announcements. Handles (e.g. `@scverse_team`) to include are:
53-
- Twitter:
54-
- Zulip:
55-
- Discourse:
56-
- Mastodon:
57-
- [ ] The package provides tutorials (or "vignettes") that help getting users started quickly
58-
- [ ] The package uses the [scverse cookiecutter template](https://github.com/scverse/cookiecutter-scverse).
53+
- [ ] Please announce this package on scverse communication channels (zulip, discourse, twitter)
54+
- [ ] Please tag the author(s) these announcements. Handles (e.g. `@scverse_team`) to include are:
55+
- Zulip:
56+
- Discourse:
57+
- Mastodon:
58+
- Bluesky:
59+
- Twitter:
60+
61+
- [ ] The package provides tutorials (or "vignettes") that help getting users started quickly
62+
- [ ] The package uses the [scverse cookiecutter template](https://github.com/scverse/cookiecutter-scverse).
5963

6064
[^1]: We recommend thtat tests cover at least all user facing (public) functions. Minimal tests ensure that the function does not fail on an example data set. Ideally, tests also ensure the correctness of the results, e.g. by comparing against a snapshot.
6165

packages/CellAnnotator/meta.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: CellAnnotator
2+
description: |
3+
CellAnnotator is a lightweight tool to query large language models for cell type labels in scRNA-seq data. It can incorporate prior knowledge, and it creates consistent labels across samples in your study.
4+
project_home: https://github.com/quadbio/cell-annotator
5+
documentation_home: https://cell-annotator.readthedocs.io/en/latest/
6+
install:
7+
pypi: cell-annotator
8+
tags:
9+
- cell type labels
10+
- openai
11+
- large language models
12+
- automatic annotation
13+
- cell state
14+
license: MIT
15+
version: v0.1.3
16+
contact:
17+
- Marius1311
18+
test_command: pip install -e '.[test]' && pytest
19+
category: ecosystem

packages/CellCharter/meta.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ tags:
1515
- gaussian mixture model
1616
license: BSD-3-Clause
1717
version: v0.3.1
18-
authors:
18+
contact:
1919
- marcovarrone
2020
test_command: |
2121
pip install ".[test]" && pytest
22+
category: ecosystem

packages/CellMapper/meta.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: CellMapper
2+
description: |
3+
CellMapper is a leightweight tool to transfer labels, expression values and embeddings from reference to query datasets using k-NN mapping. It's fast and versatile, applicable to mapping scenarios in space, across modalities, or from an atlas to a new query dataset.
4+
project_home: https://github.com/quadbio/cellmapper
5+
documentation_home: https://cellmapper.readthedocs.io/en/latest/
6+
install:
7+
pypi: cellmapper
8+
tags:
9+
- k-NN based mapping
10+
- rapids
11+
- faiss
12+
- query-to-reference
13+
license: MIT
14+
version: v0.1.2
15+
contact:
16+
- Marius1311
17+
test_command: pip install -e '.[test]' && pytest
18+
category: ecosystem

packages/CellOracle/meta.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ tags:
1414
- TF
1515
license: Apache-2.0
1616
version: v0.10.12
17-
authors:
18-
- KenjiKamimoto-wustl122
17+
contact:
18+
- KenjiKamimoto-ac
1919
- sam-morris
2020
- cmhct7
2121
test_command: |
@@ -42,3 +42,4 @@ test_command: |
4242
pip install .
4343
# command to run tests
4444
pytest -v
45+
category: ecosystem

packages/CellRank/meta.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ tags:
1717
- trajectory-generation
1818
license: BSD-3-Clause
1919
version: v1.5.1
20-
authors:
20+
contact:
2121
- Marius1311
2222
- michalk8
2323
- WeilerP
2424
test_command: |
2525
pip install ".[test]" && pytest
26+
category: ecosystem

0 commit comments

Comments
 (0)