The Dataset objects return by the Python API should be duck-type compatible with those returned by xarray, so that they can be interchangeable. As far as I know this is largely true, but there hasn't been a concerted effort to catalog and test every behavior. The ultimately test is probably just to drop it in to the dClimate API in place of a zarr and see what, if anything, breaks.
One aspect that doesn't impact the API, but does impact the user experience, is we don't have any pretty output from repr methods like xarray, so the experience of using it in a REPL isn't as nice.
There is primitive lazy evaluation of slices to mimic the API of xarray, but it could probably be done a little smarter. It's worth looking at how and when xarray decides to actually realize a slice and reproduce that behavior.
The Dataset objects return by the Python API should be duck-type compatible with those returned by xarray, so that they can be interchangeable. As far as I know this is largely true, but there hasn't been a concerted effort to catalog and test every behavior. The ultimately test is probably just to drop it in to the dClimate API in place of a zarr and see what, if anything, breaks.
One aspect that doesn't impact the API, but does impact the user experience, is we don't have any pretty output from repr methods like xarray, so the experience of using it in a REPL isn't as nice.
There is primitive lazy evaluation of slices to mimic the API of xarray, but it could probably be done a little smarter. It's worth looking at how and when xarray decides to actually realize a slice and reproduce that behavior.