These are some breaking changes that I have wanted to make for a while.
1) Split FormatWrapper into BaseFormatWrapper and DiskFormatWrapper
Not all FormatWrapper classes have a disk component (eg VoidFormatWrapper)
2) Replaced FormatWrapper constructor with load classmethod.
3) Made FormatWrapper.create_and_load a classmethod.
The FormatWrapper constructor used to shallow load the data which caused problems with subclassing and create_and_load
The classmethods allow the constructor to fully run and only define default attributes before load does shallow loading or create_and_load initialises the data.
4) Made FormatWrapper.valid_formats and FormatWrapper.requires_selection static methods
These do not touch the instance data and should be accessible without an instance
5) VoidFormatWrapper inherits directly from BaseFormatWrapper and the constructors do not take any inputs.
These are some breaking changes that I have wanted to make for a while.
1) Split
FormatWrapper
intoBaseFormatWrapper
andDiskFormatWrapper
FormatWrapper
constructor withload
classmethod. 3) MadeFormatWrapper.create_and_load
a classmethod.FormatWrapper
constructor used to shallow load the data which caused problems with subclassing andcreate_and_load
load
does shallow loading orcreate_and_load
initialises the data. 4) MadeFormatWrapper.valid_formats
andFormatWrapper.requires_selection
static methodsVoidFormatWrapper
inherits directly fromBaseFormatWrapper
and the constructors do not take any inputs.