Breaking changes
- `delu.cat`: now, the input must be a list (before, any iterable was allowed)
- `delu.Timer`: now, `print(timer)`, `str(timer)`, `f'{timer}'` etc. return the full-precision representation (without rounding to seconds)
New features
- `delu.EarlyStopping`: a simpler replacement for `delu.ProgressTracker`, but now, without tracking the best score. The usage is very similar, see the documentation.
- `delu.cat`: now, supports nested collections (e.g. the input can be a list of `tuple[Tensor, dict[str, tuple[Tensor, Tensor]]]`)
Deprecations
- `delu.ProgressTracker`: instead, use `delu.EarlyStopping`
- `delu.data.FnDataset`: no alternatives are provided