Remove hyperopt-pickle result support
This commit is contained in:
parent
6a227fe9eb
commit
47f641d12f
@ -89,18 +89,6 @@ class HyperoptTools():
|
|||||||
else:
|
else:
|
||||||
return any(s in config['spaces'] for s in [space, 'all', 'default'])
|
return any(s in config['spaces'] for s in [space, 'all', 'default'])
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def _read_results_pickle(results_file: Path) -> List:
|
|
||||||
"""
|
|
||||||
Read hyperopt results from pickle file
|
|
||||||
LEGACY method - new files are written as json and cannot be read with this method.
|
|
||||||
"""
|
|
||||||
from joblib import load
|
|
||||||
|
|
||||||
logger.info(f"Reading pickled epochs from '{results_file}'")
|
|
||||||
data = load(results_file)
|
|
||||||
return data
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _read_results(results_file: Path) -> List:
|
def _read_results(results_file: Path) -> List:
|
||||||
"""
|
"""
|
||||||
@ -120,7 +108,10 @@ class HyperoptTools():
|
|||||||
epochs: List = []
|
epochs: List = []
|
||||||
if results_file.is_file() and results_file.stat().st_size > 0:
|
if results_file.is_file() and results_file.stat().st_size > 0:
|
||||||
if results_file.suffix == '.pickle':
|
if results_file.suffix == '.pickle':
|
||||||
epochs = HyperoptTools._read_results_pickle(results_file)
|
raise OperationalException(
|
||||||
|
"Legacy hyperopt results are no longer supported."
|
||||||
|
"Please rerun hyperopt or use an older version to load this file."
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
epochs = HyperoptTools._read_results(results_file)
|
epochs = HyperoptTools._read_results(results_file)
|
||||||
# Detection of some old format, without 'is_best' field saved
|
# Detection of some old format, without 'is_best' field saved
|
||||||
|
@ -10,7 +10,7 @@ import rapidjson
|
|||||||
from freqtrade.constants import FTHYPT_FILEVERSION
|
from freqtrade.constants import FTHYPT_FILEVERSION
|
||||||
from freqtrade.exceptions import OperationalException
|
from freqtrade.exceptions import OperationalException
|
||||||
from freqtrade.optimize.hyperopt_tools import HyperoptTools, hyperopt_serializer
|
from freqtrade.optimize.hyperopt_tools import HyperoptTools, hyperopt_serializer
|
||||||
from tests.conftest import log_has, log_has_re
|
from tests.conftest import log_has
|
||||||
|
|
||||||
|
|
||||||
# Functions for recurrent object patching
|
# Functions for recurrent object patching
|
||||||
@ -37,31 +37,10 @@ def test_save_results_saves_epochs(hyperopt, tmpdir, caplog) -> None:
|
|||||||
assert len(hyperopt_epochs) == 2
|
assert len(hyperopt_epochs) == 2
|
||||||
|
|
||||||
|
|
||||||
def test_load_previous_results(testdatadir, caplog) -> None:
|
|
||||||
|
|
||||||
results_file = testdatadir / 'hyperopt_results_SampleStrategy.pickle'
|
|
||||||
|
|
||||||
hyperopt_epochs = HyperoptTools.load_previous_results(results_file)
|
|
||||||
|
|
||||||
assert len(hyperopt_epochs) == 5
|
|
||||||
assert log_has_re(r"Reading pickled epochs from .*", caplog)
|
|
||||||
|
|
||||||
caplog.clear()
|
|
||||||
|
|
||||||
# Modern version
|
|
||||||
results_file = testdatadir / 'strategy_SampleStrategy.fthypt'
|
|
||||||
|
|
||||||
hyperopt_epochs = HyperoptTools.load_previous_results(results_file)
|
|
||||||
|
|
||||||
assert len(hyperopt_epochs) == 5
|
|
||||||
assert log_has_re(r"Reading epochs from .*", caplog)
|
|
||||||
|
|
||||||
|
|
||||||
def test_load_previous_results2(mocker, testdatadir, caplog) -> None:
|
def test_load_previous_results2(mocker, testdatadir, caplog) -> None:
|
||||||
mocker.patch('freqtrade.optimize.hyperopt_tools.HyperoptTools._read_results_pickle',
|
|
||||||
return_value=[{'asdf': '222'}])
|
|
||||||
results_file = testdatadir / 'hyperopt_results_SampleStrategy.pickle'
|
results_file = testdatadir / 'hyperopt_results_SampleStrategy.pickle'
|
||||||
with pytest.raises(OperationalException, match=r"The file .* incompatible.*"):
|
with pytest.raises(OperationalException,
|
||||||
|
match=r"Legacy hyperopt results are no longer supported.*"):
|
||||||
HyperoptTools.load_previous_results(results_file)
|
HyperoptTools.load_previous_results(results_file)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user