Recreate alignchunk working commit#1
Merged
Conversation
pydata#10571) * Improve reading and writing of NetCDF files to/from bytes or file-like objects. * Allows use of h5netcdf engine when writing to file-like objects (such as BytesIO), stop forcing use of scipy backend in this case (which is incompatible with groups and DataTree). Makes h5netcdf the default engine for DataTree.to_netcdf rather than leaving the choice of default up to Dataset.to_netcdf. * Allows use of h5netcdf engine to read from a bytes object. * Allows DataTree.to_netcdf to return bytes when filepath argument is omitted (similar to Dataset.to_netcdf. * Add a test for Dataset.to_netcdf(engine='h5netcdf') and fix a bug where bytes were being returned before the h5py.File had been closed, which it appears is needed for it to finish writing a valid file. This required a further workaround to prevent the BytesIO being closed by the scipy backend when it is used in a similar way. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Move close() fixes into scipy backends I also updated the h5netcdf backend to silence warnings from not closing files that were already open (which are issued from CachingFileManager). * Fix type annotations * Fix error from arViz * better typing and different fixes * Fixes per review, also use memoryview for return value * one more test * remove unnecessary use of BytesIO * remove inadvertent print() * Fix typing * Don't silently override engine in to_netcdf * Use type alias instead of refining filename_or_obj type everywhere * Fix grammar --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Stephan Hoyer <shoyer@google.com> Co-authored-by: Kai Mühlbauer <kai.muehlbauer@uni-bonn.de>
* GH6736 * Updated whats-new.rst * Update xarray/backends/api.py Co-authored-by: Michael Niklas <mick.niklas@gmail.com> * Updated logic * Added tests and modifiede the logic to get correct ids for concat * Added new tests and logic to handle 2x2 open_mfdataset with ignore and warn. * pre-commit run * new logic to add nested paths * made remove_path a private function and updated whats-new.rst * Updated whats-new.rst * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * removed entry to whats-new.rst * Remove conflict * Whats-new conflicts * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * modify docs * modify doc-strings * Update xarray/backends/api.py Co-authored-by: Kai Mühlbauer <kmuehlbauer@wradlib.org> * Update xarray/backends/api.py Co-authored-by: Kai Mühlbauer <kmuehlbauer@wradlib.org> * catch exception for warn * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update xarray/backends/api.py Co-authored-by: Kai Mühlbauer <kmuehlbauer@wradlib.org> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * import emit_user_level_warning * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * retry importing emit_user_level_warning * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * emit_user_level_warning * adding import * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updated whats-new.rst * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update doc/whats-new.rst * Update whats-new.rst * set of invalid files in a set and remove them only once * modified the logic to remove invalid files. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * import ing TypeVar * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * making FLike private * fixing mypy errors * importing List from typing * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updated whats-new * remove whats-new * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updated Whats-new.rst --------- Co-authored-by: Michael Niklas <mick.niklas@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kai Mühlbauer <kmuehlbauer@wradlib.org>
…ta#10621) Bumps the actions group with 1 update: [actions/download-artifact](https://github.com/actions/download-artifact). Updates `actions/download-artifact` from 4 to 5 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@v4...v5) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Sanitize unlimited_dims when writing `to_netcdf`, raise ValueError when encoding is inconsistent with dataset. * Update doc/whats-new.rst
* use `is_full_slice` * don't try to expand a full slice * slice a slice with an array without materializing the slice * formatting * type hints * check that the new algorithm works properly * compare to `size` instead * doctests * type hints * stricter type hints * check against `numpy` Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com> * remove the old parametrized expected values * fix type hints * shortcut for existing full slices * move the definition of the new types out of the type checking block * also support negative array values --------- Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>
…ons (pydata#10627) * clarify lazy behaviour and eager loading chunks=None in open_*-functions * add whats-new.rst entry * Update xarray/backends/api.py Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>
* Avoid refining parent dimensions in NetCDF files This changes the way DataTree objects are written to disk in a single call to `DataTree.to_netcdf()`, as well as netCDF groups written by passing an explicit `group` to `Dataset.to_netcdf()`. Conceivably we could only adjust the behavior for `DataTree`, but doing so for `Dataset` was well felt more consistent to me (and was also easier to implement). Fixes: GH10241 * Typo * doc failure * Create collect_ancestor_dimensions() helper function
* Add DataTree.is_data_empty property and .prune() method │ │ │ │ - Add is_data_empty property to check if node contains data variables with actual data │ │ - Add prune() method to remove empty nodes while preserving tree structure │ │ - Include comprehensive tests covering basic pruning, intermediate nodes, and filtering scenarios │ │ - Useful for cleaning up DataTree after time-based filtering operations * documenting changes in whats-new.rst file * removing blank lines * removing new property instead using data_vars and fixing corresponding test * removing .is_empty_data entry * updating github url * fixing test accordingly * fixing doctest * fixing doctest * fixing doctest * replacing doctest * replacing doctest * removing empty line * removing empty line * Update xarray/core/datatree.py Co-authored-by: Tom Nicholas <tom@earthmover.io> * Update xarray/core/datatree.py Co-authored-by: Tom Nicholas <tom@earthmover.io> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * improving doctests * fixing typo * refactoring test accodingly to Tom's suggestion * fixing test_prune_after_filtering * refactoring test to use assert_identical * refactoring test to use assert)_equal * adding reference to .prune method in Subsetting Tree Nodes * adding # doctest: +NORMALIZE_WHITESPACE to avoid error with trailing space * Fix doctest trailing space issue in prune method * trial 2 fixing trailing space * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * normalizing whitespace for doctest * normalizing whitespace and adding ellipsis for doctest * normalizing whitespace and adding ellipsis for doctest * normalizing whitespace and adding ellipsis for doctest --------- Co-authored-by: Tom Nicholas <tom@earthmover.io> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* new blank whatsnew * test async load using special zarr LatencyStore * don't use dask * async all the way down * remove assert False * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add pytest-asyncio to CI envs * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * assert results are identical * implement async load for dataarray and dataset * factor out common logic * consolidate tests via a parametrized fixture * async_load -> load_async * make BackendArray an ABC * explain how to add async support for any backend in the docs * add new methods to api docs * whatsnew * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix ci/minimum_versions.py * fix formatting * concurrently load different variables in ds.load_async using asyncio.gather * test concurrent loading of multiple variables in one dataset * fix non-awaited load_async * rearrange test order * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add test for orthogonal indexing * explicitly forbid orthogonal indexing * support async orthogonal indexing via zarr-developers/zarr-python#3083 * add test for vectorized indexing (even if it doesn't work) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add test for basic indexing * correct test to actually use vectorized indexing * refactor to parametrize indexing test * implement async vectorized indexing * revert breaking change to BackendArray * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove indirection in _ensure_cached method * IndexingAdapters don't need async get * Add tests * Add decoding test * Add IndexingAdapter mixin * [cherry] Making decoding arrays lazy too * parametrized over isel and sel * mock zarr.AsyncArray.getitem in test * tidy up the mocking * ensure the correct zarr class's method is patched for each test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add degenerate test case of no indexing * factor out the Latency part of LatencyStore * use mocks in multiple objects test * use mocks in multiple variables test * trim latencystore down to just what's needed to dodge zarr-developers/zarr-python#3105 (comment) * parametrizing indexing test over xarray classes * ensure we actually test vectorized indexing for Variable * use create_test_data * add @pytest.mark.asyncio * remove outdated readonly_store * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * enable tests to run when recent version of zarr-python is not available * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * separate tests to only run on correct versions of zarr * clear error message if async oindexing not available * parametrize over zarr_format * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add pytest-asyncio to other test CI env * fix some mypy errors * use method directly when possible * remove repeated API docs from bad merge * fix bad merge in release note * fix other bad merge in whatsnew * remove prints Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com> * remove last print statement * test async basic indexing raises informative error before zarr-python v3.0.0 * test correct error message is raised for each indexing case * ensure each test runs on the earliest version of xaarr it can * remove pointless repeated getitem * set N_LAZY_VARS correctly in test * remove unused import * rename flag to make it more clear its only for orthogonal and vectorized indexing * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove IndexingAdapter special case * type fixes * return a deepcopy * try again * one more * Try again * try fixing _in_memory error by not returning the adapter class * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove scope=module from fixture for robustness * modify test to be happy with either error message * use Variable instead of Dataset to avoid race condition of indexing between different variables * fix bad merge in API docs * add test to test_backends.py * fix bug found by new test, causing pandas indexes to be converted to numpy arrays * add test to test_variable.py for lazy async indexing * move async load tests from test_async.py to test_backends.py * parametrize all tests over zarr_format * remove test_async.py file entirely * lint * Stricter assertions Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com> * Update doc/whats-new.rst Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com> * add docstring for Variable.load_async * make all load-related docstrings consistent * note about users being responsible for limiting concurrency * remove parametrization over zarr_format * account for Dataset having multiple lazy vars * refactor test parametrization to use pytest.param(..., id=...) syntax * refactor TestBackendIndexing to combine sync and async checks in one function * move test_load_async onto test base class * should fix mypy error * add back in the parametrize_zarr_format to avoid trying to write v3 data using zarr-python v2 * parametrize test over async --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Deepak Cherian <deepak@cherian.net> Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>
…value (pydata#10596) Co-authored-by: Justus Magin <keewis@users.noreply.github.com> Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>
* release notes for v2025.08.0 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Improve DataTree typing * a few more fixes
* add check for bool type * clean up * clean up * add test * add test * add test * add test --------- Co-authored-by: Giacomo Caria <giacomo@chloris.earth>
* fix ``auto_complex`` for ``open_datatree`` * add TestNetCDF4DataTree test class * add whats-new.rst entry * prevent TestNetCDF4Data to be collected in test_backends_datatree.py * catch ValueError for test_child_group_with_inconsistent_dimensions when run on DataTree * fix whats-new.rst * move internal changes to correct section
… instead of raise (pydata#10648) * In case of misconfiguration of `unlimited_dims` warn instead of raise if originating from dataset.encoding * add whats-new.rst entry
* Refactor to_netcdf() and to_zarr() internals * Fixes per review * Clean up comments * Fix type for to_netcdf() * Add test and whats-new for cross-group redundant computation * Fix test failure on CI (and add a better test) * grammar
* Add load_datatree function * Apply suggestion from @kmuehlbauer Co-authored-by: Kai Mühlbauer <kmuehlbauer@wradlib.org> * Apply suggestion from @kmuehlbauer Co-authored-by: Kai Mühlbauer <kmuehlbauer@wradlib.org> --------- Co-authored-by: Kai Mühlbauer <kmuehlbauer@wradlib.org>
Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 4 to 5 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* implement `Coordinates` methods modifying coords * allow using the binary-or operator (`|`) for merging * tests for `drop_vars` * tests for `rename_dims` and `rename_vars` * tests for the merge operator * Apply suggestions from code review Co-authored-by: Benoit Bovy <benbovy@gmail.com> * attempt to fix the typing * make sure we always return a `Coordinates` object * replace docstring by a reference to `Coordinates.merge` * changelog * create docs pages * add back the docstring for `__or__` * add `drop_dims` * typing * undo a bad merge [skip-ci] * document `drop_dims` [skip-ci] --------- Co-authored-by: Benoit Bovy <benbovy@gmail.com> Co-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>
* use the new syntax to ignore bots * [skip-ci][skip-rtd]
…ydata#10669) Bumps the actions group with 1 update: [codecov/codecov-action](https://github.com/codecov/codecov-action). Updates `codecov/codecov-action` from 5.4.3 to 5.5.0 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](codecov/codecov-action@v5.4.3...v5.5.0) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: 5.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ta#10519) Co-authored-by: DHRUVA KUMAR KAUSHAL <sanjay@MacBook-Air.local> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Deepak Cherian <deepak@cherian.net>
* create a policy definition file * use `xarray-contrib/minimum-dependency-versions` * remove the min-deps script * setup python * bump versions * exclude `hypothesis` * use `python-version` to select the version * stop ignoring `pydap` violations We appear to have reached the point where this is not necessary anymore (but the comment might have been wrong? We're already pinning to `pydap=3.5.0`)
* Switch back default netCDF engine * Update doc/whats-new.rst Co-authored-by: Kai Mühlbauer <kmuehlbauer@wradlib.org> --------- Co-authored-by: Kai Mühlbauer <kmuehlbauer@wradlib.org>
* Update pre-commit hooks updates: - [github.com/astral-sh/ruff-pre-commit: v0.12.11 → v0.13.3](astral-sh/ruff-pre-commit@v0.12.11...v0.13.3) - [github.com/keewis/blackdoc: v0.4.1 → v0.4.3](keewis/blackdoc@v0.4.1...v0.4.3) - [github.com/pre-commit/mirrors-mypy: v1.17.1 → v1.18.2](pre-commit/mirrors-mypy@v1.17.1...v1.18.2) - [github.com/adhtruong/mirrors-typos: v1.35.6 → v1.37.2](adhtruong/mirrors-typos@v1.35.6...v1.37.2) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix ruff linting errors from pre-commit hook updates - Fix RUF059: Prefix unused unpacked variables with underscore - Fix RUF043: Use raw strings for regex patterns in pytest match parameters - Add 'nclusive' to typos ignore list (part of error message testing) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Maximilian Roos <m@maxroos.com> Co-authored-by: Claude <noreply@anthropic.com>
* Order coords to match dims in repr * Update docstrings with new dim-ordered coords * Add tests for _repr_html_ coord ordering * Update what's new * Apply suggestions from code review * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Illviljan <14371165+Illviljan@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…ydata#10828) * Actually revert default netCDF engine * Fix unit tests for engine * Tweak defaults again, preferring h5netcdf over scipy * Fix default netcdf engine in docstrings * update whats-new
* feat: Preserve attributes by default in all operations BREAKING CHANGE: Change keep_attrs default from False to True This changes the default behavior of xarray operations to preserve attributes by default, which better aligns with user expectations and scientific workflows where metadata preservation is critical. Migration guide: - To restore previous behavior globally: xr.set_options(keep_attrs=False) - To restore for specific operations: use keep_attrs=False parameter - Alternative: use .drop_attrs() method after operations Closes pydata#3891, pydata#4510, pydata#9920 * Fix Dataset.map to properly handle coordinate attrs when keep_attrs=False The merge incorrectly preserved coordinate attributes even when keep_attrs=False. Now coordinates have their attrs cleared when keep_attrs=False, consistent with data variables. * Optimize Dataset.map coordinate attribute handling - When keep_attrs=True: restore attrs from original coords (func may have dropped them) - When keep_attrs=False: clear all attrs - More efficient than previous implementation * Simplify Dataset.map attribute handling code Group attribute operations by keep_attrs value for cleaner, more readable code with identical functionality. * Remove temporal 'now' references from comments Per Stefan's review, remove 'now' from comments that describe behavior changes, as these become stale over time. Replace with timeless descriptions that simply state the current behavior. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Address remaining review comments from Stefan - Remove PR-specific comment from variable.py that only makes sense in context - Remove redundant comment from test_computation.py - Clarify comment in test_dataarray.py about argmin preserving attrs * Use drop_conflicts for binary operations attribute handling Instead of only preserving the left operand's attributes, binary operations now combine attributes from both operands using the drop_conflicts strategy: - Matching attributes (same key, same value) are kept - Conflicting attributes (same key, different values) are dropped - Non-conflicting attributes from both operands are preserved This provides more intuitive behavior when combining data with partially overlapping metadata. * Fix binary ops attrs: only merge when both operands have attrs For backward compatibility, when one operand has no attributes (None), keep the left operand's attributes instead of merging. This maintains the existing test expectations while still providing drop_conflicts behavior when both operands have attributes. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix binary ops attrs handling when operands have no attrs When one operand has no attributes (either None or empty dict), the result should have no attributes. This maintains backward compatibility and fixes test_1d_math failures. The issue was compounded by a side effect in the attrs property getter that mutates _attrs from None to {} when accessed. * Simplify binary ops attrs handling Use attrs property directly instead of checking _attrs, since the property normalizes None to {}. This simplifies the logic while maintaining the same behavior. * Clarify comments about attrs handling differences Variable uses None for no attrs, Dataset uses {} for no attrs. Updated comments to make this distinction clear. * Implement true drop_conflicts behavior for binary operations Previously we were dropping all attrs if either operand had no attrs. Now we properly merge attrs and only drop conflicting ones, which is what drop_conflicts should do: - If one has {"a": 1} and other has {}, result is {"a": 1} - If one has {"a": 1} and other has {"a": 2}, result is {} - If one has {"a": 1} and other has {"b": 2}, result is {"a": 1, "b": 2} Updated tests to reflect this correct behavior. * Remove unnecessary conversion of {} to None Variable constructor already normalizes empty dict to None internally, so the explicit conversion is redundant. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add support for DataTree to xarray.merge() * Add path context to errors * add re.escape * use level instead of counting / * fix whats new
After PR pydata#10602, Dataset.map started failing when functions returned non-DataArray values (e.g., scalars), raising AttributeError when trying to access .coords on the returned values. This restores backward compatibility by converting non-DataArray outputs to DataArrays, which was the behavior before the regression. Fixes pydata#10835 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
* Support DataTree in xarray.concat() * fix docstring * fix mypy errors * Add comment to explain preexisting_dim * Add another unit-test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
whats-new.rstapi.rst