feat: deprecate hdf5 as data storage

This commit is contained in:
Matthias
2024-12-24 15:19:22 +01:00
parent 2a526a815e
commit 5750d05891
4 changed files with 20 additions and 2 deletions

View File

@@ -162,7 +162,7 @@ Freqtrade currently supports the following data-formats:
* `feather` - a dataformat based on Apache Arrow
* `json` - plain "text" json files
* `jsongz` - a gzip-zipped version of json files
* `hdf5` - a high performance datastore
* `hdf5` - a high performance datastore (deprecated)
* `parquet` - columnar datastore (OHLCV only)
By default, both OHLCV data and trades data are stored in the `feather` format.

View File

@@ -82,3 +82,9 @@ version 2023.3 saw the removal of `populate_any_indicators` in favor of split me
## Removal of `protections` from configuration
Setting protections from the configuration via `"protections": [],` has been removed in 2024.10, after having raised deprecation warnings for over 3 years.
## hdf5 data storage
Using hdf5 as data storage has been deprecated in 2024.12 and will be removed in 2025.1. We recommend switching to the feather data format.
Please use the [`convert-data` subcommand](data-download.md#sub-command-convert-data) to convert your existing data to one of the supported formats.

View File

@@ -551,6 +551,13 @@ def get_datahandlerclass(datatype: str) -> type[IDataHandler]:
elif datatype == "hdf5":
from .hdf5datahandler import HDF5DataHandler
logger.warning(
"DEPRECATED: The hdf5 dataformat is deprecated and will be removed in a the "
"next release. "
"Please use the convert-data command to convert your data to a supported format."
"We recommend using the feather format, as it is faster and is more space-efficient."
)
return HDF5DataHandler
elif datatype == "feather":
from .featherdatahandler import FeatherDataHandler

View File

@@ -360,6 +360,11 @@ def test_hdf5datahandler_trades_load(testdatadir):
# assert len([t for t in trades2 if t[0] > timerange.stopts * 1000]) == 0
def test_hdf5datahandler_deprecated(testdatadir, caplog):
get_datahandler(testdatadir, "hdf5")
log_has_re(r"DEPRECATED: The hdf5 dataformat is deprecated.*", caplog)
@pytest.mark.parametrize(
"pair,timeframe,candle_type,candle_append,startdt,enddt",
[