It has come time to formalize the API for Xarray backends. We now have the following backends implemented in xarray:
| Backend |
Read |
Write |
| netcdf4-python |
x |
x |
| h5netcdf |
x |
x |
| pydap |
x |
|
| pynio |
x |
|
| scipy |
x |
x |
| rasterio* |
x |
|
| zarr |
x |
x |
* currently does not inherit from backends.AbstractDatastore
And there are conversations about adding additional backends, for example:
However, as anyone who has worked on implementing or optimizing any of our current backends can attest, the existing DataStore API is not particularly user/developer friendly. @shoyer asked me to open an issue to discuss what a more user friendly backend API would look like so that is what this issue will be. I have left out a thorough description of the current API because, well, I don't think it can done in a succinct manner (thats the problem).
Note that @shoyer started down a API refactor some time ago in #1087 but that effort has stalled, presumably because we don't have a well defined set of development goals here.
cc @pydata/xarray
It has come time to formalize the API for Xarray backends. We now have the following backends implemented in xarray:
* currently does not inherit from
backends.AbstractDatastoreAnd there are conversations about adding additional backends, for example:
However, as anyone who has worked on implementing or optimizing any of our current backends can attest, the existing DataStore API is not particularly user/developer friendly. @shoyer asked me to open an issue to discuss what a more user friendly backend API would look like so that is what this issue will be. I have left out a thorough description of the current API because, well, I don't think it can done in a succinct manner (thats the problem).
Note that @shoyer started down a API refactor some time ago in #1087 but that effort has stalled, presumably because we don't have a well defined set of development goals here.
cc @pydata/xarray