Skip to content

Commit 616180e

Browse files
scverse-botflying-sheeppre-commit-ci[bot]
authored
Update template to v0.6.0 (#35)
Co-authored-by: Philipp A. <flying-sheep@web.de> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 6ccaf77 commit 616180e

18 files changed

Lines changed: 658 additions & 358 deletions

.cruft.json

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,42 @@
11
{
22
"template": "https://github.com/scverse/cookiecutter-scverse",
3-
"commit": "aa877587e59c855e2464d09ed7678af00999191a",
4-
"checkout": null,
3+
"commit": "d383d94fadff9e4e6fdb59d77c68cb900d7cedec",
4+
"checkout": "v0.6.0",
55
"context": {
66
"cookiecutter": {
77
"project_name": "multigrate",
88
"package_name": "multigrate",
99
"project_description": "Multimodal weakly supervised learning to identify disease-specific changes in single-cell atlases",
1010
"author_full_name": "Anastasia Litinetskaya",
1111
"author_email": "alitinet@gmail.com",
12-
"github_user": "alitinet",
13-
"project_repo": "https://github.com/theislab/multigrate",
12+
"github_user": "theislab",
13+
"github_repo": "multigrate",
1414
"license": "BSD 3-Clause License",
15+
"ide_integration": true,
1516
"_copy_without_render": [
1617
".github/workflows/build.yaml",
1718
".github/workflows/test.yaml",
1819
"docs/_templates/autosummary/**.rst"
1920
],
21+
"_exclude_on_template_update": [
22+
"CHANGELOG.md",
23+
"LICENSE",
24+
"README.md",
25+
"docs/api.md",
26+
"docs/index.md",
27+
"docs/notebooks/example.ipynb",
28+
"docs/references.bib",
29+
"docs/references.md",
30+
"src/**",
31+
"tests/**"
32+
],
2033
"_render_devdocs": false,
2134
"_jinja2_env_vars": {
2235
"lstrip_blocks": true,
2336
"trim_blocks": true
2437
},
25-
"_template": "https://github.com/scverse/cookiecutter-scverse"
38+
"_template": "https://github.com/scverse/cookiecutter-scverse",
39+
"_commit": "d383d94fadff9e4e6fdb59d77c68cb900d7cedec"
2640
}
2741
},
2842
"directory": null

.editorconfig

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@ charset = utf-8
88
trim_trailing_whitespace = true
99
insert_final_newline = true
1010

11-
[*.{yml,yaml}]
12-
indent_size = 2
13-
14-
[.cruft.json]
11+
[{*.{yml,yaml,toml},.cruft.json}]
1512
indent_size = 2
1613

1714
[Makefile]

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 64 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -23,67 +23,72 @@ body:
2323
- type: textarea
2424
id: versions
2525
attributes:
26-
label: Version information
26+
label: Versions
2727
description: |
28-
Please paste below the output of
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:
2938
3039
```python
31-
import session_info
32-
session_info.show(html=False, dependencies=True)
40+
>>> import session_info2; print(session_info2.session_info(dependencies=True)._repr_mimebundle_()["text/markdown"])
3341
```
42+
render: python
3443
placeholder: |
35-
-----
36-
anndata 0.8.0rc2.dev27+ge524389
37-
session_info 1.0.0
38-
-----
39-
asttokens NA
40-
awkward 1.8.0
41-
backcall 0.2.0
42-
cython_runtime NA
43-
dateutil 2.8.2
44-
debugpy 1.6.0
45-
decorator 5.1.1
46-
entrypoints 0.4
47-
executing 0.8.3
48-
h5py 3.7.0
49-
ipykernel 6.15.0
50-
jedi 0.18.1
51-
mpl_toolkits NA
52-
natsort 8.1.0
53-
numpy 1.22.4
54-
packaging 21.3
55-
pandas 1.4.2
56-
parso 0.8.3
57-
pexpect 4.8.0
58-
pickleshare 0.7.5
59-
pkg_resources NA
60-
prompt_toolkit 3.0.29
61-
psutil 5.9.1
62-
ptyprocess 0.7.0
63-
pure_eval 0.2.2
64-
pydev_ipython NA
65-
pydevconsole NA
66-
pydevd 2.8.0
67-
pydevd_file_utils NA
68-
pydevd_plugins NA
69-
pydevd_tracing NA
70-
pygments 2.12.0
71-
pytz 2022.1
72-
scipy 1.8.1
73-
setuptools 62.5.0
74-
setuptools_scm NA
75-
six 1.16.0
76-
stack_data 0.3.0
77-
tornado 6.1
78-
traitlets 5.3.0
79-
wcwidth 0.2.5
80-
zmq 23.1.0
81-
-----
82-
IPython 8.4.0
83-
jupyter_client 7.3.4
84-
jupyter_core 4.10.0
85-
-----
86-
Python 3.9.13 | packaged by conda-forge | (main, May 27 2022, 16:58:50) [GCC 10.3.0]
87-
Linux-5.18.6-arch1-1-x86_64-with-glibc2.35
88-
-----
89-
Session information updated at 2022-07-07 17:55
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/feature_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: Feature request
2-
description: Propose a new feature for multimil
2+
description: Propose a new feature for multigrate
33
labels: enhancement
44
body:
55
- type: textarea

.github/workflows/build.yaml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,15 @@ jobs:
1414
package:
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: actions/checkout@v3
18-
- name: Set up Python 3.10
19-
uses: actions/setup-python@v4
17+
- uses: actions/checkout@v4
2018
with:
21-
python-version: "3.10"
22-
cache: "pip"
23-
cache-dependency-path: "**/pyproject.toml"
24-
- name: Install build dependencies
25-
run: python -m pip install --upgrade pip wheel twine build
19+
filter: blob:none
20+
fetch-depth: 0
21+
- name: Install uv
22+
uses: astral-sh/setup-uv@v5
23+
with:
24+
cache-dependency-glob: pyproject.toml
2625
- name: Build package
27-
run: python -m build
26+
run: uv build
2827
- name: Check package
29-
run: twine check --strict dist/*.whl
28+
run: uvx twine check --strict dist/*.whl

.github/workflows/release.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ jobs:
1111
runs-on: ubuntu-latest
1212
environment:
1313
name: pypi
14-
url: https://pypi.org/p/multimil
14+
url: https://pypi.org/p/multigrate
1515
permissions:
1616
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
1717
steps:
1818
- uses: actions/checkout@v4
1919
with:
2020
filter: blob:none
2121
fetch-depth: 0
22-
- uses: actions/setup-python@v4
22+
- name: Install uv
23+
uses: astral-sh/setup-uv@v5
2324
with:
24-
python-version: "3.x"
25-
cache: "pip"
26-
- run: pip install build
27-
- run: python -m build
25+
cache-dependency-glob: pyproject.toml
26+
- name: Build package
27+
run: uv build
2828
- name: Publish package distributions to PyPI
2929
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/test.yaml

Lines changed: 68 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -13,55 +13,86 @@ concurrency:
1313
cancel-in-progress: true
1414

1515
jobs:
16+
# Get the test environment from hatch as defined in pyproject.toml.
17+
# This ensures that the pyproject.toml is the single point of truth for test definitions and the same tests are
18+
# run locally and on continuous integration.
19+
# Check [[tool.hatch.envs.hatch-test.matrix]] in pyproject.toml and https://hatch.pypa.io/latest/environment/ for
20+
# more details.
21+
get-environments:
22+
runs-on: ubuntu-latest
23+
outputs:
24+
envs: ${{ steps.get-envs.outputs.envs }}
25+
steps:
26+
- uses: actions/checkout@v4
27+
with:
28+
filter: blob:none
29+
fetch-depth: 0
30+
- name: Install uv
31+
uses: astral-sh/setup-uv@v5
32+
- name: Get test environments
33+
id: get-envs
34+
run: |
35+
ENVS_JSON=$(uvx hatch env show --json | jq -c 'to_entries
36+
| map(
37+
select(.key | startswith("hatch-test"))
38+
| {
39+
name: .key,
40+
label: (if (.key | contains("pre")) then .key + " (PRE-RELEASE DEPENDENCIES)" else .key end),
41+
python: .value.python
42+
}
43+
)')
44+
echo "envs=${ENVS_JSON}" | tee $GITHUB_OUTPUT
45+
46+
# Run tests through hatch. Spawns a separate runner for each environment defined in the hatch matrix obtained above.
1647
test:
17-
runs-on: ${{ matrix.os }}
18-
defaults:
19-
run:
20-
shell: bash -e {0} # -e to fail on error
48+
needs: get-environments
2149

2250
strategy:
2351
fail-fast: false
2452
matrix:
25-
include:
26-
- os: ubuntu-latest
27-
python: "3.10"
28-
- os: ubuntu-latest
29-
python: "3.12"
30-
- os: ubuntu-latest
31-
python: "3.12"
32-
pip-flags: "--pre"
33-
name: PRE-RELEASE DEPENDENCIES
34-
35-
name: ${{ matrix.name }} Python ${{ matrix.python }}
53+
os: [ubuntu-latest]
54+
env: ${{ fromJSON(needs.get-environments.outputs.envs) }}
3655

37-
env:
38-
OS: ${{ matrix.os }}
39-
PYTHON: ${{ matrix.python }}
56+
name: ${{ matrix.env.label }}
57+
runs-on: ${{ matrix.os }}
4058

4159
steps:
42-
- uses: actions/checkout@v3
43-
- name: Set up Python ${{ matrix.python }}
44-
uses: actions/setup-python@v4
60+
- uses: actions/checkout@v4
4561
with:
46-
python-version: ${{ matrix.python }}
47-
cache: "pip"
48-
cache-dependency-path: "**/pyproject.toml"
49-
50-
- name: Install test dependencies
51-
run: |
52-
python -m pip install --upgrade pip wheel
53-
- name: Install dependencies
54-
run: |
55-
pip install ${{ matrix.pip-flags }} ".[dev,test]"
56-
- name: Test
62+
filter: blob:none
63+
fetch-depth: 0
64+
- name: Install uv
65+
uses: astral-sh/setup-uv@v5
66+
with:
67+
python-version: ${{ matrix.env.python }}
68+
cache-dependency-glob: pyproject.toml
69+
- name: create hatch environment
70+
run: uvx hatch env create ${{ matrix.env.name }}
71+
- name: run tests using hatch
5772
env:
5873
MPLBACKEND: agg
5974
PLATFORM: ${{ matrix.os }}
6075
DISPLAY: :42
76+
run: uvx hatch run ${{ matrix.env.name }}:run-cov -v --color=yes -n auto
77+
- name: generate coverage report
6178
run: |
62-
coverage run -m pytest -v --color=yes
63-
- name: Report coverage
64-
run: |
65-
coverage report
79+
# See https://coverage.readthedocs.io/en/latest/config.html#run-patch
80+
test -f .coverage || uvx hatch run ${{ matrix.env.name }}:cov-combine
81+
uvx hatch run ${{ matrix.env.name }}:cov-report # report visibly
82+
uvx hatch run ${{ matrix.env.name }}:coverage xml # create report for upload
6683
- name: Upload coverage
67-
uses: codecov/codecov-action@v3
84+
uses: codecov/codecov-action@v5
85+
86+
# Check that all tests defined above pass. This makes it easy to set a single "required" test in branch
87+
# protection instead of having to update it frequently. See https://github.com/re-actors/alls-green#why.
88+
check:
89+
name: Tests pass in all hatch environments
90+
if: always()
91+
needs:
92+
- get-environments
93+
- test
94+
runs-on: ubuntu-latest
95+
steps:
96+
- uses: re-actors/alls-green@release/v1
97+
with:
98+
jobs: ${{ toJSON(needs) }}

0 commit comments

Comments
 (0)