What is your issue?
The Zarr array wrapper in xarray uses zarr.Array._async_array, which is a private attribute, which makes xarray vulnerable to breaking changes if zarr changes anything about that private attribute.
For example: there's an open issue and a PR over in zarr-python about moving all the AsyncArray methods over to the Array class, with the eventual goal of phasing out the AsyncArray class entirely.
So the bad news is that the zarr.Array._async_array attribute might behave differently (e.g., emit a warning) or disappear entirely in a future release of zarr. the good news is that, if the aforementioned warnings / removal does occur, xarray will be able to use public async methods on the Array class to do whatever you are currently using _async_array to do.
What is your issue?
The Zarr array wrapper in xarray uses
zarr.Array._async_array, which is a private attribute, which makes xarray vulnerable to breaking changes if zarr changes anything about that private attribute.For example: there's an open issue and a PR over in
zarr-pythonabout moving all theAsyncArraymethods over to theArrayclass, with the eventual goal of phasing out theAsyncArrayclass entirely.So the bad news is that the
zarr.Array._async_arrayattribute might behave differently (e.g., emit a warning) or disappear entirely in a future release of zarr. the good news is that, if the aforementioned warnings / removal does occur, xarray will be able to use public async methods on theArrayclass to do whatever you are currently using_async_arrayto do.