home / github

Menu
  • GraphQL API
  • Search all tables

issues

Table actions
  • GraphQL API for issues

4,034 rows where type = "pull" sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: assignee, milestone, author_association, draft, created_at (date), updated_at (date), closed_at (date)

state 2

  • closed 3,876
  • open 158

type 1

  • pull · 4,034 ✖

repo 1

  • xarray 4,034
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
2278499376 PR_kwDOAMm_X85uhFke 8997 Zarr: Optimize `region="auto"` detection dcherian 2448579 open 0     1 2024-05-03T22:13:18Z 2024-05-04T21:47:39Z   MEMBER   0 pydata/xarray/pulls/8997
  1. This moves the region detection code into ZarrStore so we only open the store once.
  2. Instead of opening the store as a dataset, construct a pd.Index directly to "auto"-infer the region.

The diff is large mostly because a bunch of code moved from backends/api.py to backends/zarr.py

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8997/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2273401533 PR_kwDOAMm_X85uPt_n 8991 Add argument check_dims to assert_allclose to allow transposed inputs (#5733) ignamv 408363 open 0     1 2024-05-01T12:05:40Z 2024-05-04T21:42:26Z   FIRST_TIME_CONTRIBUTOR   0 pydata/xarray/pulls/8991
  • [x] Closes #5733
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8991/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2034500760 PR_kwDOAMm_X85hnplA 8536 Speed up localize Illviljan 14371165 open 0     2 2023-12-10T19:24:40Z 2024-05-04T20:20:01Z   MEMBER   1 pydata/xarray/pulls/8536
  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8536/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2279042264 PR_kwDOAMm_X85ui13E 8999 Port negative frequency fix for `pandas.date_range` to `cftime_range` spencerkclark 6628425 open 0     0 2024-05-04T14:48:08Z 2024-05-04T14:51:26Z   MEMBER   0 pydata/xarray/pulls/8999

Like pandas.date_range, cftime_range would previously return dates outside the range of the specified start and end dates if provided a negative frequency: ```

start = cftime.DatetimeGregorian(2023, 10, 31) end = cftime.DatetimeGregorian(2021, 11, 1) xr.cftime_range(start, end, freq="-1YE") CFTimeIndex([2023-12-31 00:00:00, 2022-12-31 00:00:00, 2021-12-31 00:00:00], dtype='object', length=3, calendar='standard', freq='-1YE-DEC') ```

This PR ports a bug fix from pandas (https://github.com/pandas-dev/pandas/issues/56147) to prevent this from happening. The above example now produces: ```

start = cftime.DatetimeGregorian(2023, 10, 31) end = cftime.DatetimeGregorian(2021, 11, 1) xr.cftime_range(start, end, freq="-1YE") CFTimeIndex([2022-12-31 00:00:00, 2021-12-31 00:00:00], dtype='object', length=2, calendar='standard', freq=None) ```

Since this is a bug fix, we do not make any attempt to preserve the old behavior if an earlier version of pandas is installed. In the testing context this means we skip some tests for pandas versions less than 3.0.

  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8999/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2194953062 PR_kwDOAMm_X85qFqp1 8854 array api-related upstream-dev failures keewis 14808389 open 0     15 2024-03-19T13:17:09Z 2024-05-03T22:46:41Z   MEMBER   0 pydata/xarray/pulls/8854
  • [x] towards #8844

This "fixes" the upstream-dev failures related to the removal of numpy.array_api. There are a couple of open questions, though: - array-api-strict is not installed by default, so namedarray would get a new dependency. Not sure how to deal with that – as far as I can tell, numpy.array_api was not supposed to be used that way, so maybe we need to use array-api-compat instead? What do you think, @andersy005, @Illviljan? - array-api-strict does not define Array.nbytes (causing a funny exception that wrongly claims DataArray does not define nbytes) - array-api-strict has a different DType class, which makes it tricky to work with both numpy dtypes and said dtype class in the same code. In particular, if I understand correctly we're supposed to check dtypes using isdtype, but numpy.isdtype will only exist in numpy>=2, array-api-strict's version does not define datetime / string / object dtypes, and numpy.issubdtype does not work with the non-numpy dtype class). So maybe we need to use array-api-compat internally?

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8854/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2278510478 PR_kwDOAMm_X85uhIGP 8998 Zarr: Optimize appending dcherian 2448579 open 0     0 2024-05-03T22:21:44Z 2024-05-03T22:23:34Z   MEMBER   1 pydata/xarray/pulls/8998

Builds on #8997

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8998/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2269295936 PR_kwDOAMm_X85uBwtv 8983 fixes for the `pint` tests keewis 14808389 open 0     0 2024-04-29T15:09:28Z 2024-05-03T18:30:06Z   MEMBER   0 pydata/xarray/pulls/8983

This removes the use of the deprecated numpy.core._exceptions.UFuncError (and multiplication as a way to attach units), and makes sure we run the pint tests in the upstream-dev CI again.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8983/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2196272235 PR_kwDOAMm_X85qKODl 8856 Migrate indexing and broadcasting logic to `xarray.namedarray` (Part 1) andersy005 13301940 open 0     0 2024-03-19T23:51:46Z 2024-05-03T17:08:11Z   MEMBER   1 pydata/xarray/pulls/8856

This pull request is the first part of migrating the indexing and broadcasting logic from xarray.core.variable to xarray.namedarray. I intend to open follow-up pull requests to address additional changes related to this refactoring, as outlined in the proposal for decoupling lazy indexing functionality from NamedArray.

  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8856/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2275404926 PR_kwDOAMm_X85uWjVP 8993 call `np.cross` with 3D vectors only keewis 14808389 closed 0     1 2024-05-02T12:21:30Z 2024-05-03T15:56:49Z 2024-05-03T15:22:26Z MEMBER   0 pydata/xarray/pulls/8993
  • [x] towards #8844

In the tests, we've been calling np.cross with vectors of 2 or 3 dimensions, numpy>=2 will deprecate 2D vectors (plus, we're now raising on warnings). Thus, we 0-pad the inputs before generating the expected result (which generally should not change the outcome of the tests).

For a later PR: add tests to check if xr.cross works if more than a single dimension is present, and pre-compute the expected result. Also, for property-based testing: the cross-product of two vectors is perpendicular to both input vectors (use the dot product to check that), and its length (l2-norm) is the product of the lengths of the input vectors.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8993/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2203689075 PR_kwDOAMm_X85qjXJq 8870 Enable explicit use of key tuples (instead of *Indexer objects) in indexing adapters and explicitly indexed arrays andersy005 13301940 closed 0     1 2024-03-23T04:34:18Z 2024-05-03T15:27:38Z 2024-05-03T15:27:22Z MEMBER   0 pydata/xarray/pulls/8870
  • [ ] Towards #8856
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8870/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2276732187 PR_kwDOAMm_X85ubH0P 8996 Mark `test_use_cftime_false_standard_calendar_in_range` as an expected failure spencerkclark 6628425 closed 0     0 2024-05-03T01:05:21Z 2024-05-03T15:21:48Z 2024-05-03T15:21:48Z MEMBER   0 pydata/xarray/pulls/8996

Per https://github.com/pydata/xarray/issues/8844#issuecomment-2089427222, for the time being this marks test_use_cftime_false_standard_calendar_in_range as an expected failure under NumPy 2. Hopefully we'll be able to fix the upstream issue in pandas eventually.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8996/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2266442492 PR_kwDOAMm_X85t4NhR 8976 Migration of datatree/ops.py -> datatree_ops.py flamingbear 479480 closed 0     4 2024-04-26T20:14:11Z 2024-05-02T19:49:39Z 2024-05-02T19:49:39Z CONTRIBUTOR   0 pydata/xarray/pulls/8976

I considered wedging this into core/ops.py, but it didn't look like it fit there.

This is a basic lift and shift from datatree_/ops.py to core/datatree_ops.py

I did fix the document addendum injection and added a couple of tests.

  • [x] Contributes to migration step for miscellaneous modules in Track merging datatree into xarray #8572
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8976/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2204914380 PR_kwDOAMm_X85qnPSf 8872 Avoid auto creation of indexes in concat TomNicholas 35968931 open 0     15 2024-03-25T05:16:33Z 2024-05-01T19:07:01Z   MEMBER   0 pydata/xarray/pulls/8872

If we create a Coordinates object using the concatenated result_indexes, and pass that to the Dataset constructor, we can explicitly set the correct indexes from the start, instead of auto-creating the wrong ones and then trying to overwrite them with the correct indexes later (which is what the current implementation does).

  • [x] Possible fix for #8871
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8872/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2241526039 PR_kwDOAMm_X85skMs0 8939 avoid a couple of warnings in `polyfit` keewis 14808389 closed 0     14 2024-04-13T11:49:13Z 2024-05-01T16:42:06Z 2024-05-01T15:34:20Z MEMBER   0 pydata/xarray/pulls/8939

- [x] towards #8844

  • replace numpy.core.finfo with numpy.finfo
  • add dtype and copy parameters to all definitions of __array__
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8939/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2267803218 PR_kwDOAMm_X85t8pSN 8980 Complete deprecation of Dataset.dims returning dict TomNicholas 35968931 open 0     6 2024-04-28T20:32:29Z 2024-05-01T15:40:44Z   MEMBER   0 pydata/xarray/pulls/8980
  • [x] Completes deprecation cycle described in #8496, and started in #8500
  • [ ] ~~Tests added~~
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8980/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2270984193 PR_kwDOAMm_X85uHk70 8986 clean up the upstream-dev setup script keewis 14808389 closed 0     1 2024-04-30T09:34:04Z 2024-04-30T23:26:13Z 2024-04-30T20:59:56Z MEMBER   0 pydata/xarray/pulls/8986

In trying to install packages that are compatible with numpy>=2 I added several projects that are built in CI without build isolation (so that they will be built with the nightly version of numpy). That was a temporary workaround, so we should start thinking about cleaning this up.

As it seems numcodecs is now compatible (or uses less of numpy in compiled code, not sure), this is an attempt to see if CI works if we use the version from conda-forge.

bottleneck and cftime now build against numpy>=2.0.0rc1, so we can stop building them without build isolation.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8986/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2272299822 PR_kwDOAMm_X85uL82a 8989 Skip flaky `test_open_mfdataset_manyfiles` test max-sixty 5635139 closed 0     0 2024-04-30T19:24:41Z 2024-04-30T20:27:04Z 2024-04-30T19:46:34Z MEMBER   0 pydata/xarray/pulls/8989

Don't just xfail, and not only on windows, since it can crash the worker

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8989/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2271670475 PR_kwDOAMm_X85uJ5Er 8988 Remove `.drop` warning allow max-sixty 5635139 closed 0     0 2024-04-30T14:39:35Z 2024-04-30T19:26:17Z 2024-04-30T19:26:16Z MEMBER   0 pydata/xarray/pulls/8988  
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8988/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2271652603 PR_kwDOAMm_X85uJ122 8987 Add notes on when to add ignores to warnings max-sixty 5635139 closed 0     0 2024-04-30T14:34:52Z 2024-04-30T14:56:47Z 2024-04-30T14:56:46Z MEMBER   0 pydata/xarray/pulls/8987  
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8987/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2262468762 PR_kwDOAMm_X85tqnJm 8973 Docstring and documentation improvement for the Dataset class noahbenson 2005723 closed 0     7 2024-04-25T01:39:02Z 2024-04-30T14:40:32Z 2024-04-30T14:40:14Z CONTRIBUTOR   0 pydata/xarray/pulls/8973

The example in the doc-string of the Dataset class prior to this commit uses an example array whose size is 2 x 2 x 3 with the first two dimensions labeled "x" and "y" and the final dimension labeled "time". This was confusing due to the fact that "x" and "y" are just arbitrary names for these axes and that no reason is given for the data to be organized in a 2x2x3 array instead of a 2x2 matrix. This commit clarifies the example.

Additionally, this PR contains updates to the documentation, specifically the user-guide/data-structures.rst file; the updates bring the documentation examples into alignment with the doc-string change. Unfortunately, I wasn't able to build the documentation, so this will need to be checked. (I followed the instructions here, but despite cfgrib working fine, I got an error about how it wasn't a valid engine.)

See issue #8970 for more information.

  • [X] Closes #8970
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8973/reactions",
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 1,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2212435865 PR_kwDOAMm_X85rAwYu 8885 add `.oindex` and `.vindex` to `BackendArray` andersy005 13301940 closed 0     8 2024-03-28T06:14:43Z 2024-04-30T12:12:50Z 2024-04-17T01:53:23Z MEMBER   0 pydata/xarray/pulls/8885

this PR builds towards

  • https://github.com/pydata/xarray/pull/8870
  • https://github.com/pydata/xarray/pull/8856

the primary objective is to partially address

  1. Implement fall back .oindex, .vindex properties on BackendArray base class. These will simply rewrap the key tuple with the appropriate *Indexer object, and pass it on to __getitem__ or __setitem__. These methods will also raise DeprecationWarning so that external backends will know to migrate to .oindex, and .vindex over the next year.

  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8885/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2231711080 PR_kwDOAMm_X85sCbN- 8921 Revert `.oindex` and `.vindex` additions in `_ElementwiseFunctionArray`, `NativeEndiannessArray`, and `BoolTypeArray` classes andersy005 13301940 open 0     9 2024-04-08T17:11:08Z 2024-04-30T06:49:46Z   MEMBER   0 pydata/xarray/pulls/8921

As noted in https://github.com/pydata/xarray/issues/8909, the use of .oindex and .vindex properties in coding/* appears to have broken some backends (e.g. scipy). This PR reverts those changes. We plan to bundle these changes into a separate backends feature branch (see this comment, which will be merged once we are confident about its impact on downstream dependencies.

  • [ ] Closes #8909
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8921/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2240600694 PR_kwDOAMm_X85shCWz 8933 Use array_api compliant dtype Illviljan 14371165 open 0     0 2024-04-12T17:30:51Z 2024-04-30T03:57:57Z   MEMBER   1 pydata/xarray/pulls/8933
  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst

Notes: * For duckarrays, use _dtype[_generic] * For actual np.ndarrays, use np.dtype[np.generic] * np.dtype is too specific in general and it's probably not needed in most of their array_api functions. * _DTypeBase-class in np? * Mixing dtypes from np and xp is discouraged: https://github.com/data-apis/array-api/issues/582 * Using asarray seems to be the recommended way.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8933/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2267780811 PR_kwDOAMm_X85t8kgX 8979 Warn on automatic coercion to coordinate variables in Dataset constructor TomNicholas 35968931 open 0     2 2024-04-28T19:44:20Z 2024-04-29T21:13:00Z   MEMBER   0 pydata/xarray/pulls/8979
  • [x] Starts the deprecation cycle for #8959
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~
  • [ ] Change existing code + examples so as not to emit this new warning everywhere.
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8979/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2268058661 PR_kwDOAMm_X85t9f5f 8982 Switch all methods to `dim` max-sixty 5635139 closed 0     0 2024-04-29T03:42:34Z 2024-04-29T18:24:56Z 2024-04-29T18:24:55Z MEMBER   0 pydata/xarray/pulls/8982

I think this is the final set of methods

  • [x] Closes #6646
  • [ ] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8982/reactions",
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 1,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2267810980 PR_kwDOAMm_X85t8q4s 8981 Enable ffill for datetimes max-sixty 5635139 closed 0     5 2024-04-28T20:53:18Z 2024-04-29T18:09:48Z 2024-04-28T23:02:11Z MEMBER   0 pydata/xarray/pulls/8981

Notes inline. Would fix #4587

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8981/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
1949782787 PR_kwDOAMm_X85dJLvY 8332 Add invert option to DataArray/Dataset.stack() carschandler 92899389 open 0     9 2023-10-18T13:38:38Z 2024-04-29T16:29:40Z   FIRST_TIME_CONTRIBUTOR   0 pydata/xarray/pulls/8332

This brings in the option to stack all dimensions except for one or more dimensions listed. I find this very useful for quickly iterating over all the combinations of dimensions except for one (i.e. you have a number of input parameters that are parameterized and one time dimension, and you want to calculate some time response for all the combinations of these input parameters and store them in the time-row corresponding to the appropriate combination of inputs).

I played around with implementing to_stacked_array() for DataArray, but this made less sense in the end since that method was really designed for Datasets.

  • [x] Addresses #8278
  • [ ] Tests added (added one for DataArray, just now realizing I should have one for Dataset)
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8332/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2261855627 PR_kwDOAMm_X85togwQ 8969 CI: python 3.12 by default. dcherian 2448579 closed 0     2 2024-04-24T17:49:25Z 2024-04-29T16:21:20Z 2024-04-29T16:21:08Z MEMBER   0 pydata/xarray/pulls/8969
  1. Now that numba supports 3.12.
  2. Disabled pint on the main environment since it doesn't work. Pint is still installed in the all-but-dask env, which is still runs python 3.11 for this reason.
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8969/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2267711587 PR_kwDOAMm_X85t8VWy 8978 more engine environment tricks in preparation for `numpy>=2` keewis 14808389 closed 0     7 2024-04-28T17:54:38Z 2024-04-29T14:56:22Z 2024-04-29T14:56:21Z MEMBER   0 pydata/xarray/pulls/8978

Turns out pydap also needs to build with numpy>=2. Until it does, we should remove it from the upstream-dev environment. Also, numcodecs build-depends on setuptools-scm.

And finally, the h5py nightlies might support numpy>=2 (h5py>=3.11 supposedly is numpy>=2 compatible), so once again I'll try and see if CI passes.

  • [x] towards #8844
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8978/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2244518111 PR_kwDOAMm_X85suNEO 8946 Fix upcasting with python builtin numbers and numpy 2 djhoese 1828519 open 0     18 2024-04-15T20:07:42Z 2024-04-29T12:38:55Z   CONTRIBUTOR   0 pydata/xarray/pulls/8946

See #8402 for more discussion. Bottom line is that numpy 2 changes the rules for casting between two inputs. Due to this and xarray's preference for promoting python scalars to 0d arrays (scalar arrays), xarray objects are being upcast to higher data types when they previously didn't.

I'm mainly opening this PR for further and more detailed discussion.

CC @dcherian

  • [ ] Closes #8402
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8946/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2262478932 PR_kwDOAMm_X85tqpUi 8974 Raise errors on new warnings from within xarray max-sixty 5635139 closed 0     2 2024-04-25T01:50:48Z 2024-04-29T12:18:42Z 2024-04-29T02:50:21Z MEMBER   0 pydata/xarray/pulls/8974

Notes are inline.

  • [x] Closes https://github.com/pydata/xarray/issues/8494
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst

Done with some help from an LLM — quite good for doing tedious tasks that we otherwise wouldn't want to do — can paste in all the warnings output and get a decent start on rules for exclusions

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8974/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
1997537503 PR_kwDOAMm_X85fqp3A 8459 Check for aligned chunks when writing to existing variables max-sixty 5635139 closed 0     5 2023-11-16T18:56:06Z 2024-04-29T03:05:36Z 2024-03-29T14:35:50Z MEMBER   0 pydata/xarray/pulls/8459

While I don't feel super confident that this is designed to protect against any bugs, it does solve the immediate problem in #8371, by hoisting the encoding check above the code that runs for only new variables. The encoding check is somewhat implicit, so this was an easy thing to miss prior.

  • [x] Closes #8371,
  • [x] Closes #8882
  • [x] Closes #8876
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8459/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2021386895 PR_kwDOAMm_X85g7QZD 8500 Deprecate ds.dims returning dict TomNicholas 35968931 closed 0     1 2023-12-01T18:29:28Z 2024-04-28T20:04:00Z 2023-12-06T17:52:24Z MEMBER   0 pydata/xarray/pulls/8500
  • [x] Closes first step of #8496, would require another PR later to actually change the return type. Also really resolves the second half of #921.
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8500/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2254350395 PR_kwDOAMm_X85tPTua 8960 Option to not auto-create index during expand_dims TomNicholas 35968931 closed 0     2 2024-04-20T03:27:23Z 2024-04-27T16:48:30Z 2024-04-27T16:48:24Z MEMBER   0 pydata/xarray/pulls/8960
  • [x] Solves part of #8871 by pulling out part of https://github.com/pydata/xarray/pull/8872#issuecomment-2027571714
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~

TODO: - [x] Add new kwarg to DataArray.expand_dims - [ ] Add examples to docstrings? - [x] Check it actually solves the problem in #8872

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8960/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2261844699 PR_kwDOAMm_X85toeXT 8968 Bump dependencies incl `pandas>=2` dcherian 2448579 closed 0     0 2024-04-24T17:42:19Z 2024-04-27T14:17:16Z 2024-04-27T14:17:16Z MEMBER   0 pydata/xarray/pulls/8968
  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8968/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2266443797 PR_kwDOAMm_X85t4Nzs 8977 preliminary pr to examine the DataTree injected docs. flamingbear 479480 open 0     5 2024-04-26T20:15:22Z 2024-04-26T22:36:00Z   CONTRIBUTOR   1 pydata/xarray/pulls/8977

This PR should never be merged, it is opened only to run the build-the-docs with the changes from #8976

I just wanted to make sure I could point to what the final doc pages will look like when datatree is released.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8977/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2260280862 PR_kwDOAMm_X85tjH8m 8967 Migrate datatreee assertions/extensions/formatting owenlittlejohns 7788154 closed 0     0 2024-04-24T04:23:03Z 2024-04-26T17:38:59Z 2024-04-26T17:29:18Z CONTRIBUTOR   0 pydata/xarray/pulls/8967

This PR continues the overall work of migrating DataTree into xarray.

  • xarray/core/datatree_render.py is the renamed version of xarray/datatree_/datatree/render.py.
  • xarray/core/extensions.py now contains functionality from xarray/datatree_/datatree/extensions.py.
  • xarray/core/formatting.py now contains functionality from xarray/datatree_/datatree/formatting.py.
  • xarray/tests/test_datatree.py now contains tests from xarray/datatree_/datatree/tests/test_dataset_api.py.
  • xarray/testing/assertions.py now contains functionality from /xarray/datatree_/datatree/testing.py.

I had also meant to get to common.py and what's left of io.py, but I've got a hefty couple of days of meetings ahead, so I wanted to get this progress into PR before that happens. @flamingbear or I can follow up with the remaining things in a separate PR. (Also this PR is already getting a little big, so maybe it's already got enough in it)

  • [x] Contributes to migration step for miscellaneous modules in #8572
  • [ ] ~~Tests added~~
  • [ ] ~~User visible changes (including notable bug fixes) are documented in whats-new.rst~~
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8967/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2261917442 PR_kwDOAMm_X85touYl 8971 Delete pynio backend. dcherian 2448579 closed 0     2 2024-04-24T18:25:26Z 2024-04-25T14:38:23Z 2024-04-25T14:23:59Z MEMBER   0 pydata/xarray/pulls/8971
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8971/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
1692909704 PR_kwDOAMm_X85PnMF6 7811 Generalize delayed TomNicholas 35968931 open 0     0 2023-05-02T18:34:26Z 2024-04-23T17:41:55Z   MEMBER   0 pydata/xarray/pulls/7811

A small follow-on to #7019 to allow using non-dask implementations of delayed.

(Builds off of #7019)

  • [x] Closes #7810
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/7811/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2234142680 PR_kwDOAMm_X85sK0g8 8923 `"source"` encoding for datasets opened from `fsspec` objects keewis 14808389 open 0     5 2024-04-09T19:12:45Z 2024-04-23T16:54:09Z   MEMBER   0 pydata/xarray/pulls/8923

When opening files from path-like objects (str, pathlib.Path), the backend machinery (_dataset_from_backend_dataset) sets the "source" encoding. This is useful if we need the original path for additional processing, like writing to a similarly named file, or to extract additional metadata. This would be useful as well when using fsspec to open remote files.

In this PR, I'm extracting the path attribute that most fsspec objects have to set that value. I've considered using isinstance checks instead of the getattr-with-default, but the list of potential classes is too big to be practical (at least 4 classes just within fsspec itself).

If this sounds like a good idea, I'll update the documentation of the "source" encoding to mention this feature.

  • [x] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8923/reactions",
    "total_count": 2,
    "+1": 2,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2248692681 PR_kwDOAMm_X85s8dDt 8953 stop pruning datatree_ directory from distribution flamingbear 479480 closed 0     0 2024-04-17T16:14:13Z 2024-04-23T15:39:06Z 2024-04-23T15:35:20Z CONTRIBUTOR   0 pydata/xarray/pulls/8953

This PR removes the directive that strips out the datatree_ directory from the xarray distribution.

It also cleans a few typing errors and removes exceptions for the datatree_ directory for mypy.

It does NOT remove the exception for pre-commit config.

  • [X] Closes #8768
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8953/reactions",
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 1,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2255339414 PR_kwDOAMm_X85tSYdD 8962 Raise exception when using `diff` with a non-existent dimension nathanredmond 89410512 open 0     1 2024-04-22T00:04:58Z 2024-04-22T17:20:20Z   FIRST_TIMER   0 pydata/xarray/pulls/8962
  • [X] Closes #7748
  • [X] Tests added - test_dataset_diff_dim_nonexist, test_dataarray_diff_dim_nonexist
  • [X] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8962/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2255271332 PR_kwDOAMm_X85tSKJs 8961 use `nan` instead of `NaN` keewis 14808389 closed 0     0 2024-04-21T21:26:18Z 2024-04-21T22:01:04Z 2024-04-21T22:01:03Z MEMBER   0 pydata/xarray/pulls/8961

FYI @aulemahal, numpy.NaN will be removed in the upcoming numpy=2.0 release.

  • [x] follow-up to #8603
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8961/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2187743087 PR_kwDOAMm_X85ptH1f 8840 Grouper, Resampler as public api dcherian 2448579 open 0     0 2024-03-15T05:16:05Z 2024-04-21T16:21:34Z   MEMBER   1 pydata/xarray/pulls/8840

Expose Grouper and Resampler as public API

TODO: - [ ] Consider avoiding IndexVariable


  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [x] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8840/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2100707586 PR_kwDOAMm_X85lFQn3 8669 Fix automatic broadcasting when wrapping array api class TomNicholas 35968931 closed 0     0 2024-01-25T16:05:19Z 2024-04-20T05:58:05Z 2024-01-26T16:41:30Z MEMBER   0 pydata/xarray/pulls/8669
  • [x] Closes #8665
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8669/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2238099300 PR_kwDOAMm_X85sYXC0 8930 Migrate formatting_html.py into xarray core eni-awowale 51421921 closed 0     7 2024-04-11T16:15:28Z 2024-04-18T21:59:47Z 2024-04-18T21:59:44Z CONTRIBUTOR   0 pydata/xarray/pulls/8930

This PR migrates the formatting_html.py module into xarray/core/formatting_html.py as part of the on-going effort to merge xarray-datatree into xarray.

One thing of note is that importing and setting the OPTIONS to "default" in datatree/formatting_html.py (lines) were moved into xarray/core/options.py on #L23 and #L49. So, I did not add them back to xarray/core/formatting_html.py.

  • [x] Completes migration step for datatree/formating_htmls.py https://github.com/pydata/xarray/issues/8572
  • [x] Tests added
  • [ ] ~~User visible changes (including notable bug fixes) are documented in whats-new.rst~~
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8930/reactions",
    "total_count": 3,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 2,
    "rocket": 1,
    "eyes": 0
}
    xarray 13221727 pull
2125478394 PR_kwDOAMm_X85mZIzr 8723 (feat): Support for `pandas` `ExtensionArray` ilan-gold 43999641 closed 0     23 2024-02-08T15:38:18Z 2024-04-18T12:52:06Z 2024-04-18T12:52:03Z CONTRIBUTOR   0 pydata/xarray/pulls/8723

Some outstanding points/decisions brought up by this PR: - [ ] Confirm type promotion rules and write them out. As it stands now, if everything is of the same extension array type, it is passed onwards and otherwise is converted to numpy. (related: https://github.com/pydata/xarray/pull/8714) ~- [ ] Acceptance of plum as a dispatch method. Without it, the behavior should be fallen back on from before (cast to numpy types). I am a big fan of dispatching and think it could serve as a model going forward for making support of other data types/arrays more feasible. The other option, I think, would be to just use the underlying array of the ExtensionDuckArray class to decide and then have some central registry that serves as the basis for a decorator (like the api for accessors via _CachedAccessor). That being said, the current defaults are quite good so this is a marginal feature, in all likelihood.~ - [ ] Do we allow just pandas ExtensionArray directly or can we also allow Series?

Possible missing something else! Let me know!

Checklist: - [x] Closes #8463 and Closes #5287 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in whats-new.rst - [ ] New functions/methods are listed in api.rst

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8723/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2246986030 PR_kwDOAMm_X85s2plY 8948 Migrate datatree mapping.py owenlittlejohns 7788154 closed 0     1 2024-04-16T22:36:48Z 2024-04-17T20:44:29Z 2024-04-17T19:59:34Z CONTRIBUTOR   0 pydata/xarray/pulls/8948

This PR continues the overall work of migrating DataTree into xarray.

datatree_mapping.py is the renamed version of mapping.py from the datatree repository.

  • [x] Closes migration step for mapping.py #8572
  • [ ] ~~Tests added~~
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8948/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2227413822 PR_kwDOAMm_X85rz7ZX 8911 Refactor swap dims benbovy 4160723 open 0     5 2024-04-05T08:45:49Z 2024-04-17T16:46:34Z   MEMBER   1 pydata/xarray/pulls/8911
  • [ ] Attempt at fixing #8646
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst

I've tried here re-implementing swap_dims using rename_dims, drop_indexes and set_xindex. This fixes the example in #8646 but unfortunately this fails at handling the pandas multi-index special case (i.e., a single non-dimension coordinate wrapping a pd.MultiIndex that is promoted to a dimension coordinate in swap-dims auto-magically results in a PandasMultiIndex with both dimension and level coordinates).

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8911/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2244681150 PR_kwDOAMm_X85suxIl 8947 Add mypy to dev dependencies max-sixty 5635139 closed 0     0 2024-04-15T21:39:19Z 2024-04-17T16:39:23Z 2024-04-17T16:39:22Z MEMBER   0 pydata/xarray/pulls/8947  
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8947/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2075019328 PR_kwDOAMm_X85juCQ- 8603 Convert 360_day calendars by choosing random dates to drop or add aulemahal 20629530 closed 0     3 2024-01-10T19:13:31Z 2024-04-16T14:53:42Z 2024-04-16T14:53:42Z CONTRIBUTOR   0 pydata/xarray/pulls/8603
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst

Small PR to add a new "method" to convert to and from 360_day calendars. The current two methods (chosen with the align_on keyword) will always remove or add the same day-of-year for all years of the same length.

This new option will randomly chose the days, one for each fifth of the year (72-days period). It emulates the method of the LOCA datasets (see web page and article ). February 29th is always removed/added when the source/target is a leap year.

I copied the implementation from xclim (which I wrote), see code here .

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8603/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2239835092 PR_kwDOAMm_X85seXWW 8932 FIX: use str dtype without size information kmuehlbauer 5821660 closed 0     11 2024-04-12T10:59:45Z 2024-04-15T19:43:22Z 2024-04-13T12:25:48Z MEMBER   0 pydata/xarray/pulls/8932

Aims to resolve parts of #8844.

python xarray/tests/test_accessor_str.py::test_case_str: AssertionError: assert dtype('<U26') == dtype('<U30') I'm not sure this is the right location for the fix, at least it fixes those errors. AFAICT this is some issue somewhere inside apply_ufunc where the string dtype size is kept. So this fix removes the size information from the dtype (actually recreating it).

  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8932/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2242781767 PR_kwDOAMm_X85soOln 8943 Bump codecov/codecov-action from 4.2.0 to 4.3.0 in the actions group dependabot[bot] 49699333 closed 0     0 2024-04-15T06:04:28Z 2024-04-15T19:16:38Z 2024-04-15T19:16:38Z CONTRIBUTOR   0 pydata/xarray/pulls/8943

Bumps the actions group with 1 update: codecov/codecov-action.

Updates codecov/codecov-action from 4.2.0 to 4.3.0

Release notes

Sourced from codecov/codecov-action's releases.

v4.3.0

What's Changed

  • fix: automatically detect if using GitHub enterprise by @​thomasrockhu-codecov in codecov/codecov-action#1356
  • build(deps-dev): bump typescript from 5.4.3 to 5.4.4 by @​dependabot in codecov/codecov-action#1355
  • build(deps): bump github/codeql-action from 3.24.9 to 3.24.10 by @​dependabot in codecov/codecov-action#1360
  • build(deps-dev): bump @​typescript-eslint/eslint-plugin from 7.5.0 to 7.6.0 by @​dependabot in codecov/codecov-action#1364
  • build(deps-dev): bump @​typescript-eslint/parser from 7.5.0 to 7.6.0 by @​dependabot in codecov/codecov-action#1363
  • feat: add network params by @​thomasrockhu-codecov in codecov/codecov-action#1365
  • build(deps): bump undici from 5.28.3 to 5.28.4 by @​dependabot in codecov/codecov-action#1361
  • chore(release): v4.3.0 by @​thomasrockhu-codecov in codecov/codecov-action#1366

Full Changelog: https://github.com/codecov/codecov-action/compare/v4.2.0...v4.3.0

Commits
  • 8450866 chore(release): v4.3.0 (#1366)
  • e841909 build(deps): bump undici from 5.28.3 to 5.28.4 (#1361)
  • 363a65a feat: add network params (#1365)
  • 640b86a build(deps-dev): bump @​typescript-eslint/parser from 7.5.0 to 7.6.0 (#1363)
  • 375c033 build(deps-dev): bump @​typescript-eslint/eslint-plugin from 7.5.0 to 7.6.0 (#...
  • d701256 build(deps): bump github/codeql-action from 3.24.9 to 3.24.10 (#1360)
  • 0bb547a build(deps-dev): bump typescript from 5.4.3 to 5.4.4 (#1355)
  • 55e8381 fix: automatically detect if using GitHub enterprise (#1356)
  • See full diff in compare view


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8943/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2208982027 PR_kwDOAMm_X85q1Lns 8879 Migrate iterators.py for datatree. owenlittlejohns 7788154 closed 0     2 2024-03-26T18:14:53Z 2024-04-15T16:23:56Z 2024-04-11T15:28:25Z CONTRIBUTOR   0 pydata/xarray/pulls/8879

This PR continues the overall work of migrating DataTree into xarray.

iterators.py does not have direct tests. In discussions with @TomNicholas and @flamingbear, we concurred that other unit tests utilise this functionality.

  • [x] Closes migration step for iterators.py #8572
  • [ ] ~~Tests added~~
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8879/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2241492018 PR_kwDOAMm_X85skF_A 8937 drop support for `python=3.9` keewis 14808389 open 0     3 2024-04-13T10:18:04Z 2024-04-15T15:07:39Z   MEMBER   0 pydata/xarray/pulls/8937

According to our policy (and NEP-29) we can drop support for python=3.9 since about a week ago. Interestingly, SPEC0 says we could have started doing this about half a year ago (Q4 2023).

We could delay this until we have a release that is compatible with numpy>=2.0, though (numpy>=2.1 will drop support for python=3.9).

  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8937/reactions",
    "total_count": 3,
    "+1": 3,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2240895281 PR_kwDOAMm_X85siDno 8934 Correct save_mfdataset docstring TomNicholas 35968931 closed 0     0 2024-04-12T20:51:35Z 2024-04-14T19:58:46Z 2024-04-14T11:14:42Z MEMBER   0 pydata/xarray/pulls/8934

Noticed the **kwargs part of the docstring was mangled - see here

  • [ ] ~~Closes #xxxx~~
  • [ ] ~~Tests added~~
  • [ ] ~~User visible changes (including notable bug fixes) are documented in whats-new.rst~~
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8934/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2236408438 PR_kwDOAMm_X85sSjdN 8926 no untyped tests Illviljan 14371165 closed 0     2 2024-04-10T20:52:29Z 2024-04-14T16:15:45Z 2024-04-14T16:15:45Z MEMBER   1 pydata/xarray/pulls/8926
  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8926/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2242197433 PR_kwDOAMm_X85smT4G 8942 WIP: Support calendar-specific `cftime.datetime` instances spencerkclark 6628425 open 0     0 2024-04-14T14:33:06Z 2024-04-14T15:41:08Z   MEMBER   1 pydata/xarray/pulls/8942

Since cftime version 1.3.0, the base cftime.datetime object can be calendar-aware, obviating the need for calendar-specific subclasses like cftime.DatetimeNoLeap. This PR aims to finally enable the use of these objects in xarray. We can also use this moment to remove cruft around accommodating inexact cftime datetime arithmetic, since that has been fixed since cftime version 1.2.0.

The idea will be to support both for a period of time and eventually drop support for the calendar-specific subclasses. I do not think too much should need to change within xarray—the main challenge will be to see if we can maintain adequate test coverage without multiplying the number of cftime tests by two. This draft PR is at least a start towards that.

  • [ ] Closes #4336
  • [ ] Closes #4853
  • [ ] Closes #5551
  • [ ] Closes #8298
  • [ ] Closes #8941
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8942/reactions",
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 1,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2241528898 PR_kwDOAMm_X85skNON 8940 adapt more tests to the copy-on-write behavior of pandas keewis 14808389 closed 0     1 2024-04-13T11:57:10Z 2024-04-13T19:36:30Z 2024-04-13T14:44:50Z MEMBER   0 pydata/xarray/pulls/8940
  • [x] follow-up to #8846
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8940/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2241499231 PR_kwDOAMm_X85skHW9 8938 use `pd.to_timedelta` instead of `TimedeltaIndex` keewis 14808389 closed 0     0 2024-04-13T10:38:12Z 2024-04-13T12:32:14Z 2024-04-13T12:32:13Z MEMBER   0 pydata/xarray/pulls/8938

pandas recently removed the deprecated unit kwarg to TimedeltaIndex.

  • [x] towards #8844
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8938/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2241095068 PR_kwDOAMm_X85sixE5 8935 Use Variable.stack instead of np.ravel Illviljan 14371165 open 0     1 2024-04-12T23:04:35Z 2024-04-13T08:27:13Z   MEMBER   1 pydata/xarray/pulls/8935
  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8935/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2241228882 PR_kwDOAMm_X85sjOh9 8936 MAINT: use sphinxext-rediraffe conda install raybellwaves 17162724 closed 0     1 2024-04-13T02:11:07Z 2024-04-13T02:53:53Z 2024-04-13T02:53:48Z CONTRIBUTOR   0 pydata/xarray/pulls/8936
  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8936/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2235746028 PR_kwDOAMm_X85sQRSg 8924 Keep attributes for "bounds" variables st-bender 28786187 open 0     0 2024-04-10T14:29:58Z 2024-04-11T14:09:48Z   CONTRIBUTOR   0 pydata/xarray/pulls/8924

Issue #2921 is about mismatching time units between a time variable and its "bounds" companion. However, #2965 does more than fixing #2921, it removes all double attributes from "bounds" variables which has the undesired side effect that there is currently no way to save them to netcdf with xarray. Since the mentioned link is a recommendation and not a hard requirement for CF compliance, these attributes should be left to the caller to prepare the dataset variables appropriately if required. Reduces the amount of surprise that attributes are not written to disk and fixes #8368.

  • [x] Closes #8368
  • [ ] Tests added (simple round trip test would be in issue #8368)
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst (not sure about "user visibility" here)
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8924/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2231409978 PR_kwDOAMm_X85sBYyR 8920 Enhance the ugly error in constructor when no data passed aimtsou 2598924 closed 0     6 2024-04-08T14:42:57Z 2024-04-10T22:46:57Z 2024-04-10T22:46:53Z CONTRIBUTOR   0 pydata/xarray/pulls/8920

This fix enhances the issue 8860. I did not add any test since I believe it is not needed for this case since we did not add any functionality.

  • [X] Closes #8860
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8920/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2232134629 PR_kwDOAMm_X85sD5gg 8922 Add typing to some functions in indexing.py Illviljan 14371165 closed 0     0 2024-04-08T21:45:30Z 2024-04-10T18:05:52Z 2024-04-10T18:05:52Z MEMBER   0 pydata/xarray/pulls/8922

A drive-by PR as I was trying to figure out how these functions works.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8922/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2215762637 PR_kwDOAMm_X85rMHpN 8893 Avoid extra read from disk when creating Pandas Index. dcherian 2448579 open 0     1 2024-03-29T17:44:52Z 2024-04-08T18:55:09Z   MEMBER   0 pydata/xarray/pulls/8893
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8893/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2230357492 PR_kwDOAMm_X85r9wiV 8918 Bump codecov/codecov-action from 4.1.1 to 4.2.0 in the actions group dependabot[bot] 49699333 closed 0     0 2024-04-08T06:21:47Z 2024-04-08T16:31:12Z 2024-04-08T16:31:11Z CONTRIBUTOR   0 pydata/xarray/pulls/8918

Bumps the actions group with 1 update: codecov/codecov-action.

Updates codecov/codecov-action from 4.1.1 to 4.2.0

Release notes

Sourced from codecov/codecov-action's releases.

v4.2.0

What's Changed

  • chore(deps): update deps by @​thomasrockhu-codecov in codecov/codecov-action#1351
  • feat: allow for authentication via OIDC token by @​thomasrockhu-codecov in codecov/codecov-action#1330
  • fix: use_oidc shoudl be required false by @​thomasrockhu-codecov in codecov/codecov-action#1353

Full Changelog: https://github.com/codecov/codecov-action/compare/v4.1.1...v4.2.0

Commits
  • 7afa10e fix: use_oidc shoudl be required false (#1353)
  • d820d60 feat: allow for authentication via OIDC token (#1330)
  • 3a20752 chore(deps): update deps (#1351)
  • See full diff in compare view


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8918/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
1410608825 PR_kwDOAMm_X85A4RjC 7173 Add LineCollection plot Illviljan 14371165 open 0     1 2022-10-16T20:16:28Z 2024-04-07T20:26:44Z   MEMBER   1 pydata/xarray/pulls/7173

This adds a line plotter based on LineCollections, called .lines at the moment.

I wanted to replace darray.plot() with using LineCollection instead. But unfortunately due to how many cases are supported (and tested in xarray) darray.plot() will continue using plt.plot.

xref:

4820

5622

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/7173/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2228266052 PR_kwDOAMm_X85r24hE 8913 Update hypothesis action to always save the cache dcherian 2448579 closed 0     0 2024-04-05T15:09:35Z 2024-04-05T16:51:05Z 2024-04-05T16:51:03Z MEMBER   0 pydata/xarray/pulls/8913

Update the cache always.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8913/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2215113392 PR_kwDOAMm_X85rJ3wR 8889 Add typing to test_plot.py Illviljan 14371165 closed 0     0 2024-03-29T10:49:39Z 2024-04-05T16:42:27Z 2024-04-05T16:42:27Z MEMBER   0 pydata/xarray/pulls/8889

Enforce typing on all tests in test_plot.py and add the remaining type hints.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8889/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2224297504 PR_kwDOAMm_X85rpGUH 8906 Add invariant check for IndexVariable.name dcherian 2448579 open 0     1 2024-04-04T02:13:33Z 2024-04-05T07:12:54Z   MEMBER   1 pydata/xarray/pulls/8906

@benbovy this seems to be the root cause of #8646, the variable name in Dataset._variables does not match IndexVariable.name.

A good number of tests seem to fail though, so not sure if this is a good chck.

  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8906/reactions",
    "total_count": 2,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 2,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2057651682 PR_kwDOAMm_X85i2Byx 8573 ddof vs correction kwargs in std/var TomNicholas 35968931 closed 0     0 2023-12-27T18:10:52Z 2024-04-04T16:46:55Z 2024-04-04T16:46:55Z MEMBER   0 pydata/xarray/pulls/8573
  • [x] Attempt to closes issue described in https://github.com/pydata/xarray/issues/8566#issuecomment-1870472827
  • [x] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8573/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2136724736 PR_kwDOAMm_X85m_MtN 8754 Don't access data when creating DataArray from Variable. dcherian 2448579 closed 0     2 2024-02-15T14:48:32Z 2024-04-04T16:46:54Z 2024-04-04T16:46:53Z MEMBER   0 pydata/xarray/pulls/8754
  • [x] Closes #8753

This seems to have been around since 2016-ish, so presumably our backend code path is passing arrays around, not Variables.

cc @ilan-gold

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8754/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2224300175 PR_kwDOAMm_X85rpG4S 8907 Trigger hypothesis stateful tests nightly dcherian 2448579 closed 0     0 2024-04-04T02:16:59Z 2024-04-04T02:17:49Z 2024-04-04T02:17:47Z MEMBER   0 pydata/xarray/pulls/8907
  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8907/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2098659175 PR_kwDOAMm_X85k-T6b 8658 Stateful tests with Dataset dcherian 2448579 closed 0     8 2024-01-24T16:34:59Z 2024-04-03T21:29:38Z 2024-04-03T21:29:36Z MEMBER   0 pydata/xarray/pulls/8658

I was curious to see if the hypothesis stateful testing would catch an inconsistent sequence of index manipulation operations like #8646. Turns out rename_vars is basically broken? (filed #8659) :P

PS: this blog post is amazing. E state = DatasetStateMachine() E state.assert_invariants() E > === E E <xarray.Dataset> E Dimensions: () E Data variables: E *empty* E === E E E > vars: ('1', '1_') E state.add_dim_coord(var=<xarray.Variable (1: 1)> E array([0], dtype=uint32)) E state.assert_invariants() E > === E E <xarray.Dataset> E Dimensions: (1: 1) E Coordinates: E * 1 (1) uint32 0 E Data variables: E 1_ (1) uint32 0 E === E E E > renaming 1 to 0 E state.rename_vars(newname='0') E state.assert_invariants() E > === E E <xarray.Dataset> E Dimensions: (1: 1) E Coordinates: E * 0 (1) uint32 0 E Dimensions without coordinates: 1 E Data variables: E 1_ (1) uint32 0 E === E E E state.teardown()

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8658/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2000205407 PR_kwDOAMm_X85fzupc 8467 [skip-ci] dev whats-new dcherian 2448579 closed 0     0 2023-11-18T03:59:29Z 2024-04-03T21:08:45Z 2023-11-18T15:20:37Z MEMBER   0 pydata/xarray/pulls/8467
  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8467/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
1989233637 PR_kwDOAMm_X85fOdAk 8446 Remove PseudoNetCDF dcherian 2448579 closed 0     0 2023-11-12T04:29:50Z 2024-04-03T21:08:44Z 2023-11-13T21:53:56Z MEMBER   0 pydata/xarray/pulls/8446

joining the party - [x] User visible changes (including notable bug fixes) are documented in whats-new.rst

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8446/reactions",
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 1,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2064698904 PR_kwDOAMm_X85jLHsQ 8584 Silence a bunch of CachingFileManager warnings dcherian 2448579 closed 0     1 2024-01-03T21:57:07Z 2024-04-03T21:08:27Z 2024-01-03T22:52:58Z MEMBER   0 pydata/xarray/pulls/8584  
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8584/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2102850331 PR_kwDOAMm_X85lMW8k 8674 Fix negative slicing of Zarr arrays dcherian 2448579 closed 0     0 2024-01-26T20:22:21Z 2024-04-03T21:08:26Z 2024-02-10T02:57:32Z MEMBER   0 pydata/xarray/pulls/8674

Closes #8252 Closes #3921

  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8674/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2148245262 PR_kwDOAMm_X85nmmqX 8777 Return a dataclass from Grouper.factorize dcherian 2448579 closed 0     0 2024-02-22T05:41:29Z 2024-04-03T21:08:25Z 2024-03-15T04:47:30Z MEMBER   0 pydata/xarray/pulls/8777

Toward #8510, builds on #8776

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8777/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2148164557 PR_kwDOAMm_X85nmU5w 8775 [skip-ci] NamedArray: Add lazy indexing array refactoring plan dcherian 2448579 closed 0     0 2024-02-22T04:25:49Z 2024-04-03T21:08:21Z 2024-02-23T22:20:09Z MEMBER   0 pydata/xarray/pulls/8775

This adds a proposal for decoupling the lazy indexing array machinery, indexing adapter machinery, and Variable's setitem and getitem methods, so that the latter can be migrated to NamedArray.

cc @andersy005

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8775/reactions",
    "total_count": 2,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 2,
    "eyes": 0
}
    xarray 13221727 pull
2198991054 PR_kwDOAMm_X85qTNFP 8861 upstream-dev CI: Fix interp and cumtrapz dcherian 2448579 closed 0     0 2024-03-21T02:49:40Z 2024-04-03T21:08:17Z 2024-03-21T04:16:45Z MEMBER   0 pydata/xarray/pulls/8861
  • [x] xref #8844
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8861/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2220689594 PR_kwDOAMm_X85rcmw1 8904 Handle extra indexes for zarr region writes slevang 39069044 open 0     8 2024-04-02T14:34:00Z 2024-04-03T19:20:37Z   CONTRIBUTOR   0 pydata/xarray/pulls/8904
  • [x] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst

Small follow up to #8877. If we're going to drop the indices anyways for region writes, we may as well not raise if they are still in the dataset. This makes the user experience of region writes simpler:

```python ds = xr.tutorial.open_dataset("air_temperature") ds.to_zarr("test.zarr") region = {"time": slice(0, 10)}

This fails unless we remember to ds.drop_vars(["lat", "lon"])

ds.isel(**region).to_zarr("test.zarr", region=region) ```

I find this annoying because I often have a dataset with a bunch of unrelated indexes and have to remember which ones to drop, or use some verbose set logic. I thought #8877 might have already done this, but not quite. By just reordering the point at which we drop indices, we can now skip this. We still raise if data vars are passed that don't overlap with the region.

cc @dcherian

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8904/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2180447578 PR_kwDOAMm_X85pUKwG 8821 Add small test exposing issue from #7794 and suggestion for `_wrap_numpy_scalars` fix huard 81219 open 0     1 2024-03-11T23:40:17Z 2024-04-03T18:53:28Z   CONTRIBUTOR   0 pydata/xarray/pulls/8821

_wrap_numpy_scalars relies on np.isscalar, which incorrectly labels a single cftime object as not a scalar.

```python import cftime import numpy as np

c = cftime.datetime(2000, 1, 1, calendar='360_day') np.isscalar(c) # False ```

The PR adds logic to handle non-numpy objects using the np.ndim function. The logic for built-ins and numpy objects should remain the same.

The function logic could possibly be rewritten more clearly as ```python

if hasattr(array, "dtype"):
    if np.isscalar(array):
        return np.array(array)
    else:
        return array

if np.ndim(array) == 0:
    return np.array(array)

return array

```

  • [x] Closes #7794
  • [x] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8821/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2171912634 PR_kwDOAMm_X85o3Ify 8809 Pass variable name to `encode_zarr_variable` slevang 39069044 closed 0     6 2024-03-06T16:21:53Z 2024-04-03T14:26:49Z 2024-04-03T14:26:48Z CONTRIBUTOR   0 pydata/xarray/pulls/8809
  • [x] Closes https://github.com/xarray-contrib/xeofs/issues/148
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst

The change from https://github.com/pydata/xarray/pull/8672 mostly fixed the issue of serializing a reset multiindex in the backends, but there was an additional niche issue that turned up in xeofs that was causing serialization to still fail on the zarr backend.

The issue is that zarr is the only backend that uses a custom version of encode_cf_variable called encode_zarr_variable, and the way this gets called we don't pass through the name of the variable before running ensure_not_multiindex.

As a minimal fix, this PR just passes name through as an additional arg to the general encode_variable function. See @benbovy's comment that maybe we should actually unwrap the level coordinate in reset_index and clean up the checks in ensure_not_multiindex, but I wasn't able to get that working easily.

The exact workflow this turned up in involves DataTree and looks like this: ```python import numpy as np import xarray as xr from datatree import DataTree

ND DataArray that gets stacked along a multiindex

da = xr.DataArray(np.ones((3, 3)), coords={"dim1": [1, 2, 3], "dim2": [4, 5, 6]}) da = da.stack(feature=["dim1", "dim2"])

Extract just the stacked coordinates for saving in a dataset

ds = xr.Dataset(data_vars={"feature": da.feature})

Reset the multiindex, which should make things serializable

ds = ds.reset_index("feature") dt1 = DataTree() dt2 = DataTree(name="feature", data=ds) dt1["foo"] = dt2

Somehow in this step, dt1.foo.feature.dim1.variable becomes an IndexVariable again

print(type(dt1.foo.feature.dim1.variable))

Works

dt1.to_netcdf("test.nc", mode="w")

Fails

dt1.to_zarr("test.zarr", mode="w") ```

But we can reproduce in xarray with the test added here.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8809/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2220487961 PR_kwDOAMm_X85rb6ea 8903 Update docstring for compute and persist saschahofmann 24508496 closed 0     2 2024-04-02T13:10:02Z 2024-04-03T07:45:10Z 2024-04-02T23:52:32Z CONTRIBUTOR   0 pydata/xarray/pulls/8903
  • Updates the docstring for persist to mention that it is not altering the original object.
  • Adds a return value to the docstring for compute and persist on both Dataset and DataArray

  • [x] Closes #8901

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8903/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
1997636679 PR_kwDOAMm_X85frAC_ 8460 Add initialize_zarr dcherian 2448579 open 0     8 2023-11-16T19:45:05Z 2024-04-02T15:08:01Z   MEMBER   1 pydata/xarray/pulls/8460
  • [x] Closes #8343
  • [x] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [x] New functions/methods are listed in api.rst

The intended pattern is: ```python

after_init = initialize_zarr(store, ds, region_dims=("x",))
for i in range(ds.sizes["x"]):
    after_init.isel(x=[i]).to_zarr(store, region={"x": slice(i, i + 1)})

```

cc @slevang

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8460/reactions",
    "total_count": 5,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 3,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 2
}
    xarray 13221727 pull
2218195713 PR_kwDOAMm_X85rUCVG 8898 Update reference to 'Weighted quantile estimators' AndreyAkinshin 2259237 closed 0     3 2024-04-01T12:49:36Z 2024-04-02T12:51:28Z 2024-04-01T15:42:19Z CONTRIBUTOR   0 pydata/xarray/pulls/8898  
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8898/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2218712684 PR_kwDOAMm_X85rV1i2 8900 [pre-commit.ci] pre-commit autoupdate pre-commit-ci[bot] 66853113 closed 0     0 2024-04-01T17:27:26Z 2024-04-01T18:57:43Z 2024-04-01T18:57:42Z CONTRIBUTOR   0 pydata/xarray/pulls/8900

updates: - github.com/astral-sh/ruff-pre-commit: v0.2.0 → v0.3.4 - github.com/psf/black-pre-commit-mirror: 24.1.1 → 24.3.0 - github.com/pre-commit/mirrors-mypy: v1.8.0 → v1.9.0

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8900/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2217657228 PR_kwDOAMm_X85rSLKy 8896 Bump the actions group with 1 update dependabot[bot] 49699333 closed 0     0 2024-04-01T06:50:24Z 2024-04-01T18:02:56Z 2024-04-01T18:02:56Z CONTRIBUTOR   0 pydata/xarray/pulls/8896

Bumps the actions group with 1 update: codecov/codecov-action.

Updates codecov/codecov-action from 4.1.0 to 4.1.1

Release notes

Sourced from codecov/codecov-action's releases.

v4.1.1

What's Changed

  • build(deps): bump github/codeql-action from 3.24.5 to 3.24.6 by @​dependabot in codecov/codecov-action#1315
  • build(deps-dev): bump typescript from 5.3.3 to 5.4.2 by @​dependabot in codecov/codecov-action#1319
  • Removed mention of Mercurial by @​drazisil-codecov in codecov/codecov-action#1325
  • build(deps): bump github/codeql-action from 3.24.6 to 3.24.7 by @​dependabot in codecov/codecov-action#1332
  • build(deps): bump actions/checkout from 4.1.1 to 4.1.2 by @​dependabot in codecov/codecov-action#1331
  • fix: force version by @​thomasrockhu-codecov in codecov/codecov-action#1329
  • build(deps-dev): bump typescript from 5.4.2 to 5.4.3 by @​dependabot in codecov/codecov-action#1334
  • build(deps): bump undici from 5.28.2 to 5.28.3 by @​dependabot in codecov/codecov-action#1338
  • build(deps): bump github/codeql-action from 3.24.7 to 3.24.9 by @​dependabot in codecov/codecov-action#1341
  • fix: typo in disable_safe_directory by @​mkroening in codecov/codecov-action#1343
  • chore(release): 4.1.1 by @​thomasrockhu-codecov in codecov/codecov-action#1344

New Contributors

  • @​mkroening made their first contribution in codecov/codecov-action#1343

Full Changelog: https://github.com/codecov/codecov-action/compare/v4.1.0...v4.1.1

Changelog

Sourced from codecov/codecov-action's changelog.

4.0.0-beta.2

Fixes

  • #1085 not adding -n if empty to do-upload command

4.0.0-beta.1

v4 represents a move from the universal uploader to the Codecov CLI. Although this will unlock new features for our users, the CLI is not yet at feature parity with the universal uploader.

Breaking Changes

  • No current support for aarch64 and alpine architectures.
  • Tokenless uploading is unsuported
  • Various arguments to the Action have been removed

3.1.4

Fixes

  • #967 Fix typo in README.md
  • #971 fix: add back in working dir
  • #969 fix: CLI option names for uploader

Dependencies

  • #970 build(deps-dev): bump @​types/node from 18.15.12 to 18.16.3
  • #979 build(deps-dev): bump @​types/node from 20.1.0 to 20.1.2
  • #981 build(deps-dev): bump @​types/node from 20.1.2 to 20.1.4

3.1.3

Fixes

  • #960 fix: allow for aarch64 build

Dependencies

  • #957 build(deps-dev): bump jest-junit from 15.0.0 to 16.0.0
  • #958 build(deps): bump openpgp from 5.7.0 to 5.8.0
  • #959 build(deps-dev): bump @​types/node from 18.15.10 to 18.15.12

3.1.2

Fixes

  • #718 Update README.md
  • #851 Remove unsupported path_to_write_report argument
  • #898 codeql-analysis.yml
  • #901 Update README to contain correct information - inputs and negate feature
  • #955 fix: add in all the extra arguments for uploader

Dependencies

  • #819 build(deps): bump openpgp from 5.4.0 to 5.5.0
  • #835 build(deps): bump node-fetch from 3.2.4 to 3.2.10
  • #840 build(deps): bump ossf/scorecard-action from 1.1.1 to 2.0.4
  • #841 build(deps): bump @​actions/core from 1.9.1 to 1.10.0
  • #843 build(deps): bump @​actions/github from 5.0.3 to 5.1.1
  • #869 build(deps): bump node-fetch from 3.2.10 to 3.3.0
  • #872 build(deps-dev): bump jest-junit from 13.2.0 to 15.0.0
  • #879 build(deps): bump decode-uri-component from 0.2.0 to 0.2.2

... (truncated)

Commits
  • c16abc2 chore(release): 4.1.1 (#1344)
  • 3e33441 fix: typo in disable_safe_directory (#1343)
  • 85aacc9 build(deps): bump github/codeql-action from 3.24.7 to 3.24.9 (#1341)
  • 4ea9be0 build(deps): bump undici from 5.28.2 to 5.28.3 (#1338)
  • 164fade build(deps-dev): bump typescript from 5.4.2 to 5.4.3 (#1334)
  • 4621ecc fix: force version (#1329)
  • 251ba34 build(deps): bump actions/checkout from 4.1.1 to 4.1.2 (#1331)
  • 5a593a5 build(deps): bump github/codeql-action from 3.24.6 to 3.24.7 (#1332)
  • a15c0e4 Removed mention of Mercurial (#1325)
  • 8be6ba5 build(deps-dev): bump typescript from 5.3.3 to 5.4.2 (#1319)
  • Additional commits viewable in compare view


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8896/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2218574880 PR_kwDOAMm_X85rVXJC 8899 New empty whatsnew entry TomNicholas 35968931 closed 0     0 2024-04-01T16:04:27Z 2024-04-01T17:49:09Z 2024-04-01T17:49:06Z MEMBER   0 pydata/xarray/pulls/8899

Should have been done as part of the last release https://github.com/pydata/xarray/releases/tag/v2024.03.0

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8899/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
1336119080 PR_kwDOAMm_X849CQ7A 6908 Hypothesis strategies in xarray.testing.strategies TomNicholas 35968931 open 0     15 2022-08-11T15:20:56Z 2024-04-01T16:01:21Z   MEMBER   0 pydata/xarray/pulls/6908

Adds a whole suite of hypothesis strategies for generating xarray objects, inspired by and separated out from the new hypothesis strategies in #4972. They are placed into the namespace xarray.testing.strategies, and publicly mentioned in the API docs, but with a big warning message. There is also a new testing page in the user guide documenting how to use these strategies.

  • [x] Closes #6911
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [x] New functions/methods are listed in api.rst

EDIT: A variables strategy and user-facing documentation were shipped in https://github.com/pydata/xarray/pull/8404

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/6908/reactions",
    "total_count": 2,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 2,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2215539648 PR_kwDOAMm_X85rLW_p 8891 2024.03.0: Add whats-new dcherian 2448579 closed 0     0 2024-03-29T15:01:35Z 2024-03-29T17:07:19Z 2024-03-29T17:07:17Z MEMBER   0 pydata/xarray/pulls/8891  
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8891/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2215324218 PR_kwDOAMm_X85rKmW7 8890 Add typing to test_groupby.py Illviljan 14371165 closed 0     1 2024-03-29T13:13:59Z 2024-03-29T16:38:17Z 2024-03-29T16:38:16Z MEMBER   0 pydata/xarray/pulls/8890

Enforce typing on all tests in test_groupby.py and add the remaining type hints.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8890/reactions",
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 1,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2215059449 PR_kwDOAMm_X85rJr7c 8888 to_base_variable: coerce multiindex data to numpy array benbovy 4160723 open 0     3 2024-03-29T10:10:42Z 2024-03-29T15:54:19Z   MEMBER   0 pydata/xarray/pulls/8888
  • [x] Closes #8887, and probably supersedes #8809
  • [x] Tests added
  • [ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • ~~New functions/methods are listed in api.rst~~

@slevang this should also make work your test case added in #8809. I haven't added it here, instead I added a basic check that should be enough.

I don't really understand why the serialization backends (zarr?) do not seem to work with the PandasMultiIndexingAdapter.__array__() implementation, which should normally coerce the multi-index levels into numpy arrays as needed. Anyway, I guess that coercing it early like in this PR doesn't hurt and may avoid the confusion of a non-indexed, isolated coordinate variable that still wraps a pandas.MultiIndex.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8888/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2203250238 PR_kwDOAMm_X85qh2s8 8867 Avoid in-place multiplication of a large value to an array with small integer dtype Illviljan 14371165 closed 0     3 2024-03-22T20:22:22Z 2024-03-29T15:26:38Z 2024-03-29T15:26:38Z MEMBER   0 pydata/xarray/pulls/8867

Upstream numpy has become a bit more particular with which types you can use for inplace operations. This PR fixes ``` __ TestImshow.test_imshow_rgb_values_in_valid_range __

self = <xarray.tests.test_plot.TestImshow object at 0x7f88320c2780>

def test_imshow_rgb_values_in_valid_range(self) -> None:
    da = DataArray(np.arange(75, dtype="uint8").reshape((5, 5, 3)))
    _, ax = plt.subplots()
  out = da.plot.imshow(ax=ax).get_array()

/home/runner/work/xarray/xarray/xarray/tests/test_plot.py:2034:


/home/runner/work/xarray/xarray/xarray/plot/accessor.py:421: in imshow return dataarray_plot.imshow(self._da, args, kwargs) /home/runner/work/xarray/xarray/xarray/plot/dataarray_plot.py:1601: in newplotfunc primitive = plotfunc( /home/runner/work/xarray/xarray/xarray/plot/dataarray_plot.py:1853: in imshow alpha = 255


self = masked_array( data=[[[1], [1], [1], [1], [1]],

    [[1],
     [1],
...,
     [1],
     [1],
     [1],
     [1]]],

mask=False, fill_value=np.int64(999999), dtype=uint8) other = 255

def __imul__(self, other):
    """
    Multiply self by other in-place.

    """
    m = getmask(other)
    if self._mask is nomask:
        if m is not nomask and m.any():
            self._mask = make_mask_none(self.shape, self.dtype)
            self._mask += m
    elif m is not nomask:
        self._mask += m
    other_data = getdata(other)
    other_data = np.where(self._mask, other_data.dtype.type(1), other_data)
  self._data.__imul__(other_data)

E numpy._core._exceptions._UFuncOutputCastingError: Cannot cast ufunc 'multiply' output from dtype('int64') to dtype('uint8') with casting rule 'same_kind'

/home/runner/micromamba/envs/xarray-tests/lib/python3.12/site-packages/numpy/ma/core.py:4415: UFuncTypeError ```

Some curious behaviors seen while debugging: ```python alpha = np.array([1], dtype=np.int8) alpha *= 255 repr(alpha) # 'array([-1], dtype=int8)'

alpha = np.array([1], dtype=np.int16) alpha *= 255 repr(alpha) # 'array([255], dtype=int16)' ```

xref: #8844

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8867/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2205239889 PR_kwDOAMm_X85qoWZT 8873 Add dt.date to plottable types saschahofmann 24508496 closed 0     6 2024-03-25T09:07:33Z 2024-03-29T14:35:44Z 2024-03-29T14:35:41Z CONTRIBUTOR   0 pydata/xarray/pulls/8873

Simply adds datetime.date to plottable types in _ensure_plottable in plot/utils.pyL675 to enable the plotting of dates.

Matplotlib handles date types automatically, so I think there is no other change needed.

Do I need to add a test for this? Any pointers on where I would put it that?

  • [x] Closes #8866
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [x] New functions/methods are listed in api.rst
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8873/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2206047573 PR_kwDOAMm_X85qrHyn 8875 Optimize writes to existing Zarr stores. dcherian 2448579 closed 0     0 2024-03-25T15:32:47Z 2024-03-29T14:35:30Z 2024-03-29T14:35:29Z MEMBER   0 pydata/xarray/pulls/8875

We need to read existing variables to make sure we append or write to a region with the right encoding. Currently we decode all arrays in a Zarr group. Instead only decode those arrays for which we require encoding information.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8875/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2120340151 PR_kwDOAMm_X85mHqI0 8714 Avoid coercing to numpy in `as_shared_dtypes` TomNicholas 35968931 open 0     3 2024-02-06T09:35:22Z 2024-03-28T18:31:50Z   MEMBER   0 pydata/xarray/pulls/8714
  • [x] Solves the problem in https://github.com/pydata/xarray/pull/8712#issuecomment-1929037299
  • [ ] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8714/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull
2213406564 PR_kwDOAMm_X85rEF-X 8886 Allow multidimensional variable with same name as dim when constructing dataset via coords TomNicholas 35968931 closed 0     2 2024-03-28T14:37:27Z 2024-03-28T17:07:10Z 2024-03-28T16:28:09Z MEMBER   0 pydata/xarray/pulls/8886

Supercedes #8884 as a way to close #8883, in light of me having learnt that this is now allowed! https://github.com/pydata/xarray/issues/8883#issuecomment-2024645815. So this is really a follow-up to #7989.

  • [x] Closes #8883
  • [x] Tests added
  • [x] User visible changes (including notable bug fixes) are documented in whats-new.rst
  • [ ] ~~New functions/methods are listed in api.rst~~
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/8886/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 pull

Next page

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issues] (
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [number] INTEGER,
   [title] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [state] TEXT,
   [locked] INTEGER,
   [assignee] INTEGER REFERENCES [users]([id]),
   [milestone] INTEGER REFERENCES [milestones]([id]),
   [comments] INTEGER,
   [created_at] TEXT,
   [updated_at] TEXT,
   [closed_at] TEXT,
   [author_association] TEXT,
   [active_lock_reason] TEXT,
   [draft] INTEGER,
   [pull_request] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [performed_via_github_app] TEXT,
   [state_reason] TEXT,
   [repo] INTEGER REFERENCES [repos]([id]),
   [type] TEXT
);
CREATE INDEX [idx_issues_repo]
    ON [issues] ([repo]);
CREATE INDEX [idx_issues_milestone]
    ON [issues] ([milestone]);
CREATE INDEX [idx_issues_assignee]
    ON [issues] ([assignee]);
CREATE INDEX [idx_issues_user]
    ON [issues] ([user]);
Powered by Datasette · Queries took 530.667ms · About: xarray-datasette