Skip to content

Commit a064865

Browse files
committed
Merge branch 'main' into add_array_api_mean
2 parents 53cda6f + a66d5b5 commit a064865

File tree

146 files changed

+5958
-2813
lines changed

Some content is hidden

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

146 files changed

+5958
-2813
lines changed

.github/labeler.yml

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
Automation:
2+
- changed-files:
3+
- any-glob-to-any-file:
4+
- .github/**
5+
6+
CI:
7+
- changed-files:
8+
- any-glob-to-any-file:
9+
- ci/**
10+
11+
dependencies:
12+
- changed-files:
13+
- any-glob-to-any-file:
14+
- ci/requirements/*
15+
16+
topic-arrays:
17+
- changed-files:
18+
- any-glob-to-any-file:
19+
- xarray/core/duck_array_ops.py
20+
21+
topic-backends:
22+
- changed-files:
23+
- any-glob-to-any-file:
24+
- xarray/backends/**
25+
26+
topic-cftime:
27+
- changed-files:
28+
- any-glob-to-any-file:
29+
- xarray/coding/*time*
30+
31+
topic-CF conventions:
32+
- changed-files:
33+
- any-glob-to-any-file:
34+
- xarray/conventions.py
35+
36+
topic-dask:
37+
- changed-files:
38+
- any-glob-to-any-file:
39+
- xarray/compat/dask*
40+
- xarray/core/parallel.py
41+
42+
topic-DataTree:
43+
- changed-files:
44+
- any-glob-to-any-file:
45+
- xarray/core/datatree*
46+
47+
topic-documentation:
48+
- changed-files:
49+
- any-glob-to-any-file:
50+
- doc/*
51+
- "!doc/whats-new.rst"
52+
- doc/**/*
53+
54+
topic-groupby:
55+
- changed-files:
56+
- any-glob-to-any-file:
57+
- xarray/core/groupby.py
58+
59+
topic-html-repr:
60+
- changed-files:
61+
- any-glob-to-any-file:
62+
- xarray/core/formatting_html.py
63+
64+
topic-hypothesis:
65+
- changed-files:
66+
- any-glob-to-any-file:
67+
- properties/**
68+
- xarray/testing/strategies.py
69+
70+
topic-indexing:
71+
- changed-files:
72+
- any-glob-to-any-file:
73+
- xarray/core/indexes.py
74+
- xarray/core/indexing.py
75+
76+
topic-NamedArray:
77+
- changed-files:
78+
- any-glob-to-any-file:
79+
- xarray/namedarray/*
80+
81+
topic-performance:
82+
- changed-files:
83+
- any-glob-to-any-file:
84+
- asv_bench/benchmarks/**
85+
86+
topic-plotting:
87+
- changed-files:
88+
- any-glob-to-any-file:
89+
- xarray/plot/*
90+
- xarray/plot/**/*
91+
92+
topic-rolling:
93+
- changed-files:
94+
- any-glob-to-any-file:
95+
- xarray/computation/rolling.py
96+
- xarray/computation/rolling_exp.py
97+
98+
topic-testing:
99+
- changed-files:
100+
- any-glob-to-any-file:
101+
- conftest.py
102+
- xarray/testing/*
103+
104+
topic-typing:
105+
- changed-files:
106+
- any-glob-to-any-file:
107+
- xarray/core/types.py
108+
109+
topic-zarr:
110+
- changed-files:
111+
- any-glob-to-any-file:
112+
- xarray/backends/zarr.py
113+
114+
io:
115+
- changed-files:
116+
- any-glob-to-any-file:
117+
- xarray/backends/**

.github/workflows/benchmarks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ env:
1010

1111
jobs:
1212
benchmark:
13-
if: ${{ contains( github.event.pull_request.labels.*.name, 'run-benchmark') && github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' }}
13+
if: ${{ contains( github.event.pull_request.labels.*.name, 'run-benchmark') && github.event_name == 'pull_request' || contains( github.event.pull_request.labels.*.name, 'topic-performance') && github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' }}
1414
name: Linux
1515
runs-on: ubuntu-20.04
1616
env:

.github/workflows/ci-additional.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ jobs:
123123
python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report
124124
125125
- name: Upload mypy coverage to Codecov
126-
uses: codecov/codecov-action@v5.3.1
126+
uses: codecov/codecov-action@v5.4.0
127127
with:
128128
file: mypy_report/cobertura.xml
129129
flags: mypy
@@ -174,7 +174,7 @@ jobs:
174174
python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report
175175
176176
- name: Upload mypy coverage to Codecov
177-
uses: codecov/codecov-action@v5.3.1
177+
uses: codecov/codecov-action@v5.4.0
178178
with:
179179
file: mypy_report/cobertura.xml
180180
flags: mypy-min
@@ -230,7 +230,7 @@ jobs:
230230
python -m pyright xarray/
231231
232232
- name: Upload pyright coverage to Codecov
233-
uses: codecov/codecov-action@v5.3.1
233+
uses: codecov/codecov-action@v5.4.0
234234
with:
235235
file: pyright_report/cobertura.xml
236236
flags: pyright
@@ -286,7 +286,7 @@ jobs:
286286
python -m pyright xarray/
287287
288288
- name: Upload pyright coverage to Codecov
289-
uses: codecov/codecov-action@v5.3.1
289+
uses: codecov/codecov-action@v5.4.0
290290
with:
291291
file: pyright_report/cobertura.xml
292292
flags: pyright39

.github/workflows/ci.yaml

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,16 @@ jobs:
6767
- env: "flaky"
6868
python-version: "3.13"
6969
os: ubuntu-latest
70+
# The mypy tests must be executed using only 1 process in order to guarantee
71+
# predictable mypy output messages for comparison to expectations.
72+
- env: "mypy"
73+
python-version: "3.10"
74+
numprocesses: 1
75+
os: ubuntu-latest
76+
- env: "mypy"
77+
python-version: "3.13"
78+
numprocesses: 1
79+
os: ubuntu-latest
7080
steps:
7181
- uses: actions/checkout@v4
7282
with:
@@ -88,6 +98,10 @@ jobs:
8898
then
8999
echo "CONDA_ENV_FILE=ci/requirements/environment.yml" >> $GITHUB_ENV
90100
echo "PYTEST_ADDOPTS=-m 'flaky or network' --run-flaky --run-network-tests -W default" >> $GITHUB_ENV
101+
elif [[ "${{ matrix.env }}" == "mypy" ]] ;
102+
then
103+
echo "CONDA_ENV_FILE=ci/requirements/environment.yml" >> $GITHUB_ENV
104+
echo "PYTEST_ADDOPTS=-n 1 -m 'mypy' --run-mypy -W default" >> $GITHUB_ENV
91105
else
92106
echo "CONDA_ENV_FILE=ci/requirements/${{ matrix.env }}.yml" >> $GITHUB_ENV
93107
fi
@@ -144,7 +158,7 @@ jobs:
144158
save-always: true
145159

146160
- name: Run tests
147-
run: python -m pytest -n 4
161+
run: python -m pytest -n ${{ matrix.numprocesses || 4 }}
148162
--timeout 180
149163
--cov=xarray
150164
--cov-report=xml
@@ -158,7 +172,7 @@ jobs:
158172
path: pytest.xml
159173

160174
- name: Upload code coverage to Codecov
161-
uses: codecov/codecov-action@v5.3.1
175+
uses: codecov/codecov-action@v5.4.0
162176
env:
163177
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
164178
with:

.github/workflows/label-prs.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: "PR Labeler"
2+
on:
3+
- pull_request_target
4+
5+
jobs:
6+
label:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/labeler@v5
10+
with:
11+
repo-token: "${{ secrets.GITHUB_TOKEN }}"
12+
sync-labels: false

.github/workflows/nightly-wheels.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
fi
3939
4040
- name: Upload wheel
41-
uses: scientific-python/upload-nightly-action@82396a2ed4269ba06c6b2988bb4fd568ef3c3d6b # 0.6.1
41+
uses: scientific-python/upload-nightly-action@b36e8c0c10dbcfd2e05bf95f17ef8c14fd708dbf # 0.6.2
4242
with:
4343
anaconda_nightly_upload_token: ${{ secrets.ANACONDA_NIGHTLY }}
4444
artifacts_path: dist

.github/workflows/upstream-dev-ci.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ jobs:
8484
if: success()
8585
id: status
8686
run: |
87-
python -m pytest --timeout=60 -rf \
87+
python -m pytest --timeout=60 -rf -nauto \
8888
--report-log output-${{ matrix.python-version }}-log.jsonl
8989
- name: Generate and publish the report
9090
if: |
@@ -140,7 +140,7 @@ jobs:
140140
run: |
141141
python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report
142142
- name: Upload mypy coverage to Codecov
143-
uses: codecov/codecov-action@v5.3.1
143+
uses: codecov/codecov-action@v5.4.0
144144
with:
145145
file: mypy_report/cobertura.xml
146146
flags: mypy

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,8 @@ doc/team-panel.txt
8181
doc/external-examples-gallery.txt
8282
doc/notebooks-examples-gallery.txt
8383
doc/videos-gallery.txt
84+
85+
# Until we support this properly, excluding from gitignore. (adding it to
86+
# gitignore to make it _easier_ to work with `uv`, not as an indication that I
87+
# think we shouldn't...)
88+
uv.lock

.pre-commit-config.yaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ repos:
2525
- id: text-unicode-replacement-char
2626
- repo: https://github.com/astral-sh/ruff-pre-commit
2727
# Ruff version.
28-
rev: v0.9.4
28+
rev: v0.11.4
2929
hooks:
3030
- id: ruff-format
3131
- id: ruff
@@ -37,12 +37,12 @@ repos:
3737
exclude: "generate_aggregations.py"
3838
additional_dependencies: ["black==24.8.0"]
3939
- repo: https://github.com/rbubley/mirrors-prettier
40-
rev: v3.4.2
40+
rev: v3.5.3
4141
hooks:
4242
- id: prettier
4343
args: [--cache-location=.prettier_cache/cache]
4444
- repo: https://github.com/pre-commit/mirrors-mypy
45-
rev: v1.14.1
45+
rev: v1.15.0
4646
hooks:
4747
- id: mypy
4848
# Copied from setup.cfg
@@ -69,7 +69,13 @@ repos:
6969
- id: taplo-format
7070
args: ["--option", "array_auto_collapse=false"]
7171
- repo: https://github.com/abravalheri/validate-pyproject
72-
rev: v0.23
72+
rev: v0.24.1
7373
hooks:
7474
- id: validate-pyproject
7575
additional_dependencies: ["validate-pyproject-schema-store[all]"]
76+
- repo: https://github.com/crate-ci/typos
77+
rev: v1
78+
hooks:
79+
- id: typos
80+
# https://github.com/crate-ci/typos/issues/347
81+
pass_filenames: false

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# xarray: N-D labeled arrays and datasets
22

3-
[![CI](https://github.com/pydata/xarray/workflows/CI/badge.svg?branch=main)](https://github.com/pydata/xarray/actions?query=workflow%3ACI)
3+
[![CI](https://github.com/pydata/xarray/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/pydata/xarray/actions/workflows/ci.yaml?query=branch%3Amain)
44
[![Code coverage](https://codecov.io/gh/pydata/xarray/branch/main/graph/badge.svg?flag=unittests)](https://codecov.io/gh/pydata/xarray)
55
[![Docs](https://readthedocs.org/projects/xray/badge/?version=latest)](https://docs.xarray.dev/)
6-
[![Benchmarked with asv](https://img.shields.io/badge/benchmarked%20by-asv-green.svg?style=flat)](https://pandas.pydata.org/speed/xarray/)
6+
[![Benchmarked with asv](https://img.shields.io/badge/benchmarked%20by-asv-green.svg?style=flat)](https://asv-runner.github.io/asv-collection/xarray/)
77
[![Formatted with black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
88
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
99
[![Available on pypi](https://img.shields.io/pypi/v/xarray.svg)](https://pypi.python.org/pypi/xarray/)

0 commit comments

Comments
 (0)