astropenguin / xarray-dataclasses

:zap: xarray data creation by data classes
https://astropenguin.github.io/xarray-dataclasses/
MIT License
71 stars 4 forks source link

Add factory fields for custom DataArray/Dataset creation #50

Closed astropenguin closed 3 years ago

astropenguin commented 3 years ago

Add support of special fields (__dataarray_factory__, __dataset_factory__) for custom DataArray or Dataset creation.

class CustomDataset(xr.Dataset):
    __slots__ = ()

@dataclass
class Custom(DataArrayMixin):
    data: Data[tuple["x", "y"], float]
    __dataset_factory__ = CustomDataset

ds = asdataset(Custom(...)) # statically typed as CustomDataset
type(ds) # -> CustomDataset
astropenguin commented 3 years ago

Note: this is another trial to solve #41.