Skip to content

Commit 7697afe

Browse files
committed
Automated template update to v0.6.0
1 parent 369bf8f commit 7697afe

81 files changed

Lines changed: 701 additions & 10115 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.

.cruft.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"template": "https://github.com/scverse/cookiecutter-scverse",
3-
"commit": "94ef9fb6f9ad8cfe65a3d9575679c03c80c49cd1",
4-
"checkout": "v0.5.0",
3+
"commit": "d383d94fadff9e4e6fdb59d77c68cb900d7cedec",
4+
"checkout": "v0.6.0",
55
"context": {
66
"cookiecutter": {
77
"project_name": "scverse-tutorials",
@@ -36,7 +36,7 @@
3636
"trim_blocks": true
3737
},
3838
"_template": "https://github.com/scverse/cookiecutter-scverse",
39-
"_commit": "94ef9fb6f9ad8cfe65a3d9575679c03c80c49cd1"
39+
"_commit": "d383d94fadff9e4e6fdb59d77c68cb900d7cedec"
4040
}
4141
},
4242
"directory": null
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: Bug report
2+
description: Report something that is broken or incorrect
3+
labels: bug
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
**Note**: Please read [this guide](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports)
9+
detailing how to provide the necessary information for us to reproduce your bug. In brief:
10+
* Please provide exact steps how to reproduce the bug in a clean Python environment.
11+
* In case it's not clear what's causing this bug, please provide the data or the data generation procedure.
12+
* Sometimes it is not possible to share the data, but usually it is possible to replicate problems on publicly
13+
available datasets or to share a subset of your data.
14+
15+
- type: textarea
16+
id: report
17+
attributes:
18+
label: Report
19+
description: A clear and concise description of what the bug is.
20+
validations:
21+
required: true
22+
23+
- type: textarea
24+
id: versions
25+
attributes:
26+
label: Versions
27+
description: |
28+
Which version of packages.
29+
30+
Please install `session-info2`, run the following command in a notebook,
31+
click the “Copy as Markdown” button, then paste the results into the text box below.
32+
33+
```python
34+
In[1]: import session_info2; session_info2.session_info(dependencies=True)
35+
```
36+
37+
Alternatively, run this in a console:
38+
39+
```python
40+
>>> import session_info2; print(session_info2.session_info(dependencies=True)._repr_mimebundle_()["text/markdown"])
41+
```
42+
render: python
43+
placeholder: |
44+
anndata 0.11.3
45+
---- ----
46+
charset-normalizer 3.4.1
47+
coverage 7.7.0
48+
psutil 7.0.0
49+
dask 2024.7.1
50+
jaraco.context 5.3.0
51+
numcodecs 0.15.1
52+
jaraco.functools 4.0.1
53+
Jinja2 3.1.6
54+
sphinxcontrib-jsmath 1.0.1
55+
sphinxcontrib-htmlhelp 2.1.0
56+
toolz 1.0.0
57+
session-info2 0.1.2
58+
PyYAML 6.0.2
59+
llvmlite 0.44.0
60+
scipy 1.15.2
61+
pandas 2.2.3
62+
sphinxcontrib-devhelp 2.0.0
63+
h5py 3.13.0
64+
tblib 3.0.0
65+
setuptools-scm 8.2.0
66+
more-itertools 10.3.0
67+
msgpack 1.1.0
68+
sparse 0.15.5
69+
wrapt 1.17.2
70+
jaraco.collections 5.1.0
71+
numba 0.61.0
72+
pyarrow 19.0.1
73+
pytz 2025.1
74+
MarkupSafe 3.0.2
75+
crc32c 2.7.1
76+
sphinxcontrib-qthelp 2.0.0
77+
sphinxcontrib-serializinghtml 2.0.0
78+
zarr 2.18.4
79+
asciitree 0.3.3
80+
six 1.17.0
81+
sphinxcontrib-applehelp 2.0.0
82+
numpy 2.1.3
83+
cloudpickle 3.1.1
84+
sphinxcontrib-bibtex 2.6.3
85+
natsort 8.4.0
86+
jaraco.text 3.12.1
87+
setuptools 76.1.0
88+
Deprecated 1.2.18
89+
packaging 24.2
90+
python-dateutil 2.9.0.post0
91+
---- ----
92+
Python 3.13.2 | packaged by conda-forge | (main, Feb 17 2025, 14:10:22) [GCC 13.3.0]
93+
OS Linux-6.11.0-109019-tuxedo-x86_64-with-glibc2.39
94+
Updated 2025-03-18 15:47

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Scverse Community Forum
4+
url: https://discourse.scverse.org/
5+
about: If you have questions about “How to do X”, please ask them here.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Feature request
2+
description: Propose a new feature for scverse-tutorials
3+
labels: enhancement
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: Description of feature
9+
description: Please describe your suggestion for a new feature. It might help to describe a problem or use case, plus any alternatives that you have considered.
10+
validations:
11+
required: true

.github/workflows/build.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Check Build
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
defaults:
14+
run:
15+
# to fail on error in multiline statements (-e), in pipes (-o pipefail), and on unset variables (-u).
16+
shell: bash -euo pipefail {0}
17+
18+
jobs:
19+
package:
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v4
23+
with:
24+
filter: blob:none
25+
fetch-depth: 0
26+
- name: Install uv
27+
uses: astral-sh/setup-uv@v5
28+
with:
29+
cache-dependency-glob: pyproject.toml
30+
- name: Build package
31+
run: uv build
32+
- name: Check package
33+
run: uvx twine check --strict dist/*.whl

.github/workflows/release.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
defaults:
8+
run:
9+
# to fail on error in multiline statements (-e), in pipes (-o pipefail), and on unset variables (-u).
10+
shell: bash -euo pipefail {0}
11+
12+
# Use "trusted publishing", see https://docs.pypi.org/trusted-publishers/
13+
jobs:
14+
release:
15+
name: Upload release to PyPI
16+
runs-on: ubuntu-latest
17+
environment:
18+
name: pypi
19+
url: https://pypi.org/p/scverse_tutorials
20+
permissions:
21+
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
22+
steps:
23+
- uses: actions/checkout@v4
24+
with:
25+
filter: blob:none
26+
fetch-depth: 0
27+
- name: Install uv
28+
uses: astral-sh/setup-uv@v5
29+
with:
30+
cache-dependency-glob: pyproject.toml
31+
- name: Build package
32+
run: uv build
33+
- name: Publish package distributions to PyPI
34+
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/test.yaml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
name: Test
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
schedule:
9+
- cron: "0 5 1,15 * *"
10+
11+
concurrency:
12+
group: ${{ github.workflow }}-${{ github.ref }}
13+
cancel-in-progress: true
14+
15+
defaults:
16+
run:
17+
# to fail on error in multiline statements (-e), in pipes (-o pipefail), and on unset variables (-u).
18+
shell: bash -euo pipefail {0}
19+
20+
jobs:
21+
# Get the test environment from hatch as defined in pyproject.toml.
22+
# This ensures that the pyproject.toml is the single point of truth for test definitions and the same tests are
23+
# run locally and on continuous integration.
24+
# Check [[tool.hatch.envs.hatch-test.matrix]] in pyproject.toml and https://hatch.pypa.io/latest/environment/ for
25+
# more details.
26+
get-environments:
27+
runs-on: ubuntu-latest
28+
outputs:
29+
envs: ${{ steps.get-envs.outputs.envs }}
30+
steps:
31+
- uses: actions/checkout@v4
32+
with:
33+
filter: blob:none
34+
fetch-depth: 0
35+
- name: Install uv
36+
uses: astral-sh/setup-uv@v5
37+
- name: Get test environments
38+
id: get-envs
39+
run: |
40+
ENVS_JSON=$(uvx hatch env show --json | jq -c 'to_entries
41+
| map(
42+
select(.key | startswith("hatch-test"))
43+
| {
44+
name: .key,
45+
label: (if (.key | contains("pre")) then .key + " (PRE-RELEASE DEPENDENCIES)" else .key end),
46+
python: .value.python
47+
}
48+
)')
49+
echo "envs=${ENVS_JSON}" | tee $GITHUB_OUTPUT
50+
51+
# Run tests through hatch. Spawns a separate runner for each environment defined in the hatch matrix obtained above.
52+
test:
53+
needs: get-environments
54+
55+
strategy:
56+
fail-fast: false
57+
matrix:
58+
os: [ubuntu-latest]
59+
env: ${{ fromJSON(needs.get-environments.outputs.envs) }}
60+
61+
name: ${{ matrix.env.label }}
62+
runs-on: ${{ matrix.os }}
63+
64+
steps:
65+
- uses: actions/checkout@v4
66+
with:
67+
filter: blob:none
68+
fetch-depth: 0
69+
- name: Install uv
70+
uses: astral-sh/setup-uv@v5
71+
with:
72+
python-version: ${{ matrix.env.python }}
73+
cache-dependency-glob: pyproject.toml
74+
- name: create hatch environment
75+
run: uvx hatch env create ${{ matrix.env.name }}
76+
- name: run tests using hatch
77+
env:
78+
MPLBACKEND: agg
79+
PLATFORM: ${{ matrix.os }}
80+
DISPLAY: :42
81+
run: uvx hatch run ${{ matrix.env.name }}:run-cov -v --color=yes -n auto
82+
- name: generate coverage report
83+
run: |
84+
# See https://coverage.readthedocs.io/en/latest/config.html#run-patch
85+
test -f .coverage || uvx hatch run ${{ matrix.env.name }}:cov-combine
86+
uvx hatch run ${{ matrix.env.name }}:cov-report # report visibly
87+
uvx hatch run ${{ matrix.env.name }}:coverage xml # create report for upload
88+
- name: Upload coverage
89+
uses: codecov/codecov-action@v5
90+
91+
# Check that all tests defined above pass. This makes it easy to set a single "required" test in branch
92+
# protection instead of having to update it frequently. See https://github.com/re-actors/alls-green#why.
93+
check:
94+
name: Tests pass in all hatch environments
95+
if: always()
96+
needs:
97+
- get-environments
98+
- test
99+
runs-on: ubuntu-latest
100+
steps:
101+
- uses: re-actors/alls-green@release/v1
102+
with:
103+
jobs: ${{ toJSON(needs) }}

.gitignore

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,21 @@
1-
# Caches
2-
/.*cache/
3-
/node_modules/
4-
/data/
5-
.ipynb_checkpoints/
6-
__pycache__/
7-
81
# Temp files
92
.DS_Store
103
*~
114
buck-out/
125

136
# Compiled files
147
.venv/
8+
__pycache__/
9+
.*cache/
1510

1611
# Distribution / packaging
1712
/dist/
1813

1914
# Tests and coverage
2015
/data/
2116
/node_modules/
17+
/.coverage*
2218

2319
# docs
2420
/docs/generated/
2521
/docs/_build/
26-
27-
# User configuration
28-
/hatch.toml

0 commit comments

Comments
 (0)