List view
Instead of creating a subclass of Xarray's Dataset, use an accessor. To what extent do we actually need the DataStore class as subclass of Xarray's Dataset? What about instead of subclassing to add a dts accessor that holds the calibration functions? https://docs.xarray.dev/en/stable/internals/extending-xarray.html - `ds.dts.single_ended_calibration()` - `ds.dts.double_ended_calibration()` - `ds.dts.sections` and its values are still stored in ds.attrs["_sections"] - `ds.dts.variance_stokes()` - `ds.dts.__repr__()` Taking your code it would look as follows: ```py from dtscalibration.calibration_routines import double_ended, single_ended @xr.register_dataset_accessor("dts") class DataStore: ... def calibration_single_ended(self, **kwargs): single_ended.calibrate(self, **kwargs) def calibration_double_ended(self, **kwargs): double_ended.calibrate(self, **kwargs) ``` This entire overhaul is much bigger than what you propose.. Maybe leave it at your proposal for now. I am doing this thing with the accessor with pandas object and it works really neat! Keeps everything tidy and allows for combining different accessors simultaneously.
No due date•3/4 issues closed- No due date•9/11 issues closed