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
1177919687,PR_kwDOAMm_X8403yVS,6403,make more args kw only (except 'dim'),10194086,closed,0,,,9,2022-03-23T10:28:02Z,2023-10-05T20:38:49Z,2023-10-05T20:38:49Z,MEMBER,,0,pydata/xarray/pulls/6403,"
- [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst`
- [ ] New functions/methods are listed in `api.rst`
This makes many arguments keyword-only, except for `dim` to avoid `da.weighted(...).mean(""lat"", ""lon"")` (i.e. `da.weighted(...).mean(dim=""lat"", skipna=""lon"")`) which silently does the wrong thing. I am sure I forgot some and for some I was unsure so I left them as is.
Question: do we want an deprecation cycle? Currently it just errors for `da.weighted(...).mean(""dim"", True)`. Might be nice to do it, however, @dcherian if I am not mistaken you did this without a deprecation in #5950, e.g. for `da.mean` etc.?
```python
import numpy as np
import xarray as xr
air = xr.tutorial.open_dataset(""air_temperature"")
wgt = np.cos(np.deg2rad(air.lat))
air.weighted(wgt).mean(""lat"", ""lon"")
```
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6403/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull
1086346755,PR_kwDOAMm_X84wKOjC,6096,Replace distutils.version with packaging.version,10194086,closed,0,,,9,2021-12-22T00:51:21Z,2023-01-20T21:00:42Z,2021-12-24T14:50:48Z,MEMBER,,0,pydata/xarray/pulls/6096,"
- [x] Closes #6092
- [x] Passes `pre-commit run --all-files`
- [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst`
One change is that it is no longer possible to compare to a string, i.e. `version.parse(xr.__version__) < ""0.20.0""` errors.
As mentioned in #6092 there are 3 options - if there is a preference I am happy to update this PR.
```python
from distutils.version import LooseVersion
from packaging import version
LooseVersion(xr.__version__)
version.parse(xr.__version__)
version.Version(xr.__version__)
# currently:
if LooseVersion(mod.__version__) < LooseVersion(minversion):
pass
# options:
if version.parse(mod.__version__) < version.parse(minversion):
pass
if version.Version(mod.__version__) < version.Version(minversion):
pass
if Version(mod.__version__) < Version(minversion):
pass
```
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6096/reactions"", ""total_count"": 3, ""+1"": 3, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull
1285767883,PR_kwDOAMm_X846ahUs,6730,move da and ds fixtures to conftest.py,10194086,closed,0,,,9,2022-06-27T12:56:05Z,2022-12-05T20:11:08Z,2022-07-11T12:44:55Z,MEMBER,,0,pydata/xarray/pulls/6730,"
This PR renames the `da` and `ds` fixtures (to `da_fixture` and `ds_fixture`) and moves them to conftest.py. This allows to remove the flake8 error suppression for the tests and seems more how the fixtures are [intended to be used](https://docs.pytest.org/en/6.2.x/fixture.html#conftest-py-sharing-fixtures-across-multiple-files) (from the pytest side). I think the name changes makes it a bit more obvious what happens but moving them to may make it a bit less obvious (if you don't know where to look).
Removing the flake8 error ignores also unearthed some unused imports:
https://github.com/pydata/xarray/blob/787a96c15161c9025182291b672b3d3c5548a6c7/setup.cfg#L155-L156
(What I actually wanted to do is move the tests for `rolling` to it's own file - but I think it makes sense to do this first.)","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6730/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull
308039063,MDExOlB1bGxSZXF1ZXN0MTc3MDc3MTU5,2011,rolling: periodic,10194086,closed,0,,,9,2018-03-23T13:57:25Z,2021-03-30T15:08:22Z,2021-03-30T15:08:18Z,MEMBER,,0,pydata/xarray/pulls/2011," - [x] Closes #2007
- [ ] Tests added (for all bug fixes or enhancements)
- [ ] Tests passed (for all non-documentation changes)
- [ ] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API
---
Ok, this was easier to do than initially thought, we can use `np.pad(a, pads, mode='wrap')` in `nputils.rolling_window`. However, I'm not sure if that is enough already*.
I added an initial test, but could use some pointers where else you want this to be tested.
Questions:
* is `fill_value='periodic'` a good api?
* should the `fill_value` keyvalue be ported to `rolling`?
* should this also be mentioned in the docs for `rolling` (I only learned about `rolling.construct` yesterday)
---
*`rolling` is present in`core/dataset.py`, `core/dataarray.py`, `core/variable.py`, `core/rolling.py`, `core/dask_array_ops.py`, `core/nputils.py`, `core/ops.py`, `core/common.py`, `core/missing.py`, and `core/duck_array_ops.py` that can be a bit daunting...
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2011/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull
766979952,MDExOlB1bGxSZXF1ZXN0NTM5ODM4NTM4,4694,CI: run tests in parallel (pytest-xdist),10194086,closed,0,,,9,2020-12-14T22:23:04Z,2020-12-17T22:54:37Z,2020-12-17T22:33:46Z,MEMBER,,0,pydata/xarray/pulls/4694,"
- [x] Closes #3263, potentially part of #4671
It's worth a try. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4694/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull