Improve wording of "no history found" error
This commit is contained in:
parent
bf0b95b3d8
commit
88ccfedd32
@ -248,7 +248,7 @@ class IDataHandler(ABC):
|
|||||||
timerange=timerange_startup,
|
timerange=timerange_startup,
|
||||||
candle_type=candle_type
|
candle_type=candle_type
|
||||||
)
|
)
|
||||||
if self._check_empty_df(pairdf, pair, timeframe, warn_no_data):
|
if self._check_empty_df(pairdf, pair, timeframe, candle_type, warn_no_data):
|
||||||
return pairdf
|
return pairdf
|
||||||
else:
|
else:
|
||||||
enddate = pairdf.iloc[-1]['date']
|
enddate = pairdf.iloc[-1]['date']
|
||||||
@ -256,7 +256,7 @@ class IDataHandler(ABC):
|
|||||||
if timerange_startup:
|
if timerange_startup:
|
||||||
self._validate_pairdata(pair, pairdf, timeframe, candle_type, timerange_startup)
|
self._validate_pairdata(pair, pairdf, timeframe, candle_type, timerange_startup)
|
||||||
pairdf = trim_dataframe(pairdf, timerange_startup)
|
pairdf = trim_dataframe(pairdf, timerange_startup)
|
||||||
if self._check_empty_df(pairdf, pair, timeframe, warn_no_data):
|
if self._check_empty_df(pairdf, pair, timeframe, candle_type, warn_no_data):
|
||||||
return pairdf
|
return pairdf
|
||||||
|
|
||||||
# incomplete candles should only be dropped if we didn't trim the end beforehand.
|
# incomplete candles should only be dropped if we didn't trim the end beforehand.
|
||||||
@ -265,18 +265,19 @@ class IDataHandler(ABC):
|
|||||||
fill_missing=fill_missing,
|
fill_missing=fill_missing,
|
||||||
drop_incomplete=(drop_incomplete and
|
drop_incomplete=(drop_incomplete and
|
||||||
enddate == pairdf.iloc[-1]['date']))
|
enddate == pairdf.iloc[-1]['date']))
|
||||||
self._check_empty_df(pairdf, pair, timeframe, warn_no_data)
|
self._check_empty_df(pairdf, pair, timeframe, candle_type, warn_no_data)
|
||||||
return pairdf
|
return pairdf
|
||||||
|
|
||||||
def _check_empty_df(self, pairdf: DataFrame, pair: str, timeframe: str, warn_no_data: bool):
|
def _check_empty_df(self, pairdf: DataFrame, pair: str, timeframe: str,
|
||||||
|
candle_type: CandleType, warn_no_data: bool):
|
||||||
"""
|
"""
|
||||||
Warn on empty dataframe
|
Warn on empty dataframe
|
||||||
"""
|
"""
|
||||||
if pairdf.empty:
|
if pairdf.empty:
|
||||||
if warn_no_data:
|
if warn_no_data:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
f'No history data for pair: "{pair}", timeframe: {timeframe}. '
|
f"No history for {pair}, {candle_type}, {timeframe} found. "
|
||||||
'Use `freqtrade download-data` to download the data'
|
"Use `freqtrade download-data` to download the data"
|
||||||
)
|
)
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
@ -1372,10 +1372,10 @@ def test_start_list_data(testdatadir, capsys):
|
|||||||
start_list_data(pargs)
|
start_list_data(pargs)
|
||||||
captured = capsys.readouterr()
|
captured = capsys.readouterr()
|
||||||
|
|
||||||
assert "Found 3 pair / timeframe combinations." in captured.out
|
assert "Found 5 pair / timeframe combinations." in captured.out
|
||||||
assert "\n| Pair | Timeframe | Type |\n" in captured.out
|
assert "\n| Pair | Timeframe | Type |\n" in captured.out
|
||||||
assert "\n| XRP/USDT | 1h | futures |\n" in captured.out
|
assert "\n| XRP/USDT | 1h | futures |\n" in captured.out
|
||||||
assert "\n| XRP/USDT | 1h | mark |\n" in captured.out
|
assert "\n| XRP/USDT | 1h, 8h | mark |\n" in captured.out
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("init_persistence")
|
@pytest.mark.usefixtures("init_persistence")
|
||||||
|
@ -81,7 +81,7 @@ def test_load_data_7min_timeframe(mocker, caplog, default_conf, testdatadir) ->
|
|||||||
assert isinstance(ld, DataFrame)
|
assert isinstance(ld, DataFrame)
|
||||||
assert ld.empty
|
assert ld.empty
|
||||||
assert log_has(
|
assert log_has(
|
||||||
'No history data for pair: "UNITTEST/BTC", timeframe: 7m. '
|
'No history for UNITTEST/BTC, spot, 7m found. '
|
||||||
'Use `freqtrade download-data` to download the data', caplog
|
'Use `freqtrade download-data` to download the data', caplog
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -138,8 +138,8 @@ def test_load_data_with_new_pair_1min(ohlcv_history_list, mocker, caplog,
|
|||||||
load_pair_history(datadir=tmpdir1, timeframe='1m', pair='MEME/BTC', candle_type=candle_type)
|
load_pair_history(datadir=tmpdir1, timeframe='1m', pair='MEME/BTC', candle_type=candle_type)
|
||||||
assert not file.is_file()
|
assert not file.is_file()
|
||||||
assert log_has(
|
assert log_has(
|
||||||
'No history data for pair: "MEME/BTC", timeframe: 1m. '
|
f"No history for MEME/BTC, {candle_type}, 1m found. "
|
||||||
'Use `freqtrade download-data` to download the data', caplog
|
"Use `freqtrade download-data` to download the data", caplog
|
||||||
)
|
)
|
||||||
|
|
||||||
# download a new pair if refresh_pairs is set
|
# download a new pair if refresh_pairs is set
|
||||||
@ -744,6 +744,8 @@ def test_datahandler_ohlcv_get_available_data(testdatadir):
|
|||||||
('UNITTEST/USDT', '1h', 'mark'),
|
('UNITTEST/USDT', '1h', 'mark'),
|
||||||
('XRP/USDT', '1h', 'futures'),
|
('XRP/USDT', '1h', 'futures'),
|
||||||
('XRP/USDT', '1h', 'mark'),
|
('XRP/USDT', '1h', 'mark'),
|
||||||
|
('XRP/USDT', '8h', 'mark'),
|
||||||
|
('XRP/USDT', '8h', 'funding_rate'),
|
||||||
}
|
}
|
||||||
|
|
||||||
paircombs = JsonGzDataHandler.ohlcv_get_available_data(testdatadir, 'spot')
|
paircombs = JsonGzDataHandler.ohlcv_get_available_data(testdatadir, 'spot')
|
||||||
|
@ -1171,7 +1171,7 @@ def test_backtest_start_multi_strat_nomock(default_conf, mocker, caplog, testdat
|
|||||||
|
|
||||||
@pytest.mark.filterwarnings("ignore:deprecated")
|
@pytest.mark.filterwarnings("ignore:deprecated")
|
||||||
def test_backtest_start_nomock_futures(default_conf_usdt, mocker,
|
def test_backtest_start_nomock_futures(default_conf_usdt, mocker,
|
||||||
caplog, testdatadir, capsys):
|
caplog, testdatadir, capsys):
|
||||||
# Tests detail-data loading
|
# Tests detail-data loading
|
||||||
default_conf_usdt.update({
|
default_conf_usdt.update({
|
||||||
"trading_mode": "futures",
|
"trading_mode": "futures",
|
||||||
@ -1270,6 +1270,7 @@ def test_backtest_start_nomock_futures(default_conf_usdt, mocker,
|
|||||||
assert 'SELL REASON STATS' in captured.out
|
assert 'SELL REASON STATS' in captured.out
|
||||||
assert 'LEFT OPEN TRADES REPORT' in captured.out
|
assert 'LEFT OPEN TRADES REPORT' in captured.out
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.filterwarnings("ignore:deprecated")
|
@pytest.mark.filterwarnings("ignore:deprecated")
|
||||||
def test_backtest_start_multi_strat_nomock_detail(default_conf, mocker,
|
def test_backtest_start_multi_strat_nomock_detail(default_conf, mocker,
|
||||||
caplog, testdatadir, capsys):
|
caplog, testdatadir, capsys):
|
||||||
|
Loading…
Reference in New Issue
Block a user