id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 922843005,MDExOlB1bGxSZXF1ZXN0NjcxNjY5NjU0,5476,Add coarsen.construct,2448579,closed,0,,,4,2021-06-16T16:42:15Z,2021-07-23T20:26:38Z,2021-06-24T16:55:25Z,MEMBER,,0,pydata/xarray/pulls/5476," - [x] Closes #5454 - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` Builds on #5474 Here's an example ``` python import numpy as np import xarray as xr ds = xr.Dataset( { ""vart"": (""time"", np.arange(48)), ""varx"": (""x"", np.arange(10)), ""vartx"": ((""x"", ""time""), np.arange(480).reshape(10, 48)), ""vary"": (""y"", np.arange(12)), }, coords={""time"": np.arange(48), ""y"": np.arange(12)}, ) ds.coarsen(time=12, x=5, boundary=""trim"").construct( {""time"": (""year"", ""month""), ""x"": (""x"", ""x_reshaped"")} ) ``` What do people think of this syntax: `{""time"": (""year"", ""month""), ""x"": (""x"", ""x_reshaped"")`? Should we instead do `{""time"": ""month"", ""x"": ""x_reshaped""}` and have the user later rename the `x` or `time` dimension if they want?","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5476/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 922792799,MDExOlB1bGxSZXF1ZXN0NjcxNjI1NDc3,5474,Refactor out coarsen tests,2448579,closed,0,,,3,2021-06-16T15:52:57Z,2021-06-21T17:04:02Z,2021-06-21T16:35:36Z,MEMBER,,0,pydata/xarray/pulls/5474," - xref #5409 - [x] Tests added - [x] Passes `pre-commit run --all-files` Some questions: 1. flake8 fails with some false positives. What do we do about that? 2. I am importing the `da` and `ds` fitures from `test_dataarray` and `test_dataset`. Is that the pattern we want to follow? ``` xarray/tests/test_coarsen.py:9:1: F401 '.test_dataarray.da' imported but unused xarray/tests/test_coarsen.py:10:1: F401 '.test_dataset.ds' imported but unused xarray/tests/test_coarsen.py:13:36: F811 redefinition of unused 'ds' from line 10 xarray/tests/test_coarsen.py:20:26: F811 redefinition of unused 'ds' from line 10 xarray/tests/test_coarsen.py:35:25: F811 redefinition of unused 'ds' from line 10 xarray/tests/test_coarsen.py:51:5: F811 redefinition of unused 'da' from line 9 xarray/tests/test_coarsen.py:62:5: F811 redefinition of unused 'da' from line 9 xarray/tests/test_coarsen.py:84:5: F811 redefinition of unused 'ds' from line 10 xarray/tests/test_coarsen.py:156:5: F811 redefinition of unused 'ds' from line 10 xarray/tests/test_coarsen.py:186:25: F811 redefinition of unused 'ds' from line 10 xarray/tests/test_coarsen.py:217:5: F811 redefinition of unused 'da' from line 9 xarray/tests/test_coarsen.py:269:5: F811 redefinition of unused 'da' from line 9 ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5474/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull