Skip to content

Commit 8d0d390

Browse files
committed
Merge branch 'main' into concat_default_kwargs
2 parents 42cf522 + 3816901 commit 8d0d390

Some content is hidden

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

86 files changed

+3228
-1035
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/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: 1 addition & 1 deletion
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: |

.pre-commit-config.yaml

Lines changed: 3 additions & 3 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.9
28+
rev: v0.11.4
2929
hooks:
3030
- id: ruff-format
3131
- id: ruff
@@ -69,12 +69,12 @@ 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]"]
7676
- repo: https://github.com/crate-ci/typos
77-
rev: dictgen-v0.3.1
77+
rev: v1
7878
hooks:
7979
- id: typos
8080
# https://github.com/crate-ci/typos/issues/347

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
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/)
66
[![Benchmarked with asv](https://img.shields.io/badge/benchmarked%20by-asv-green.svg?style=flat)](https://asv-runner.github.io/asv-collection/xarray/)

asv_bench/benchmarks/repr.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,25 @@ def time_repr_html(self):
2525
self.ds._repr_html_()
2626

2727

28+
class ReprDataTree:
29+
def setup(self):
30+
# construct a datatree with 500 nodes
31+
number_of_files = 20
32+
number_of_groups = 25
33+
tree_dict = {}
34+
for f in range(number_of_files):
35+
for g in range(number_of_groups):
36+
tree_dict[f"file_{f}/group_{g}"] = xr.Dataset({"g": f * g})
37+
38+
self.dt = xr.DataTree.from_dict(tree_dict)
39+
40+
def time_repr(self):
41+
repr(self.dt)
42+
43+
def time_repr_html(self):
44+
self.dt._repr_html_()
45+
46+
2847
class ReprMultiIndex:
2948
def setup(self):
3049
index = pd.MultiIndex.from_product(

ci/install-upstream-wheels.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ python -m pip install \
5353
git+https://github.com/dask/dask \
5454
git+https://github.com/dask/dask-expr \
5555
git+https://github.com/dask/distributed \
56-
git+https://github.com/zarr-developers/zarr \
56+
git+https://github.com/zarr-developers/zarr-python \
5757
git+https://github.com/Unidata/cftime \
5858
git+https://github.com/pypa/packaging \
5959
git+https://github.com/hgrecco/pint \

design_notes/flexible_indexes_notes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ Besides `pandas.Index`, other indexes currently supported in Xarray like `CFTime
166166

167167
Like for the indexes, explicit coordinate creation should be preferred over implicit coordinate creation. However, there may be some situations where we would like to keep creating coordinates implicitly for backwards compatibility.
168168

169-
For example, it is currently possible to pass a `pandas.MulitIndex` object as a coordinate to the Dataset/DataArray constructor:
169+
For example, it is currently possible to pass a `pandas.MultiIndex` object as a coordinate to the Dataset/DataArray constructor:
170170

171171
```python
172172
>>> midx = pd.MultiIndex.from_arrays([['a', 'b'], [0, 1]], names=['lvl1', 'lvl2'])

0 commit comments

Comments
 (0)