replace os.path with pathlib.Path
This commit is contained in:
parent
a34c2cf64b
commit
f261911285
@ -9,7 +9,7 @@ except ImportError:
|
|||||||
import json # type: ignore
|
import json # type: ignore
|
||||||
_UJSON = False
|
_UJSON = False
|
||||||
import logging
|
import logging
|
||||||
import os
|
from pathlib import Path
|
||||||
from typing import Optional, List, Dict, Tuple, Any
|
from typing import Optional, List, Dict, Tuple, Any
|
||||||
|
|
||||||
import arrow
|
import arrow
|
||||||
@ -64,7 +64,7 @@ def trim_tickerlist(tickerlist: List[Dict], timerange: TimeRange) -> List[Dict]:
|
|||||||
|
|
||||||
|
|
||||||
def load_tickerdata_file(
|
def load_tickerdata_file(
|
||||||
datadir: str, pair: str,
|
datadir: Path, pair: str,
|
||||||
ticker_interval: str,
|
ticker_interval: str,
|
||||||
timerange: Optional[TimeRange] = None) -> Optional[List[Dict]]:
|
timerange: Optional[TimeRange] = None) -> Optional[List[Dict]]:
|
||||||
"""
|
"""
|
||||||
@ -73,16 +73,16 @@ def load_tickerdata_file(
|
|||||||
"""
|
"""
|
||||||
path = make_testdata_path(datadir)
|
path = make_testdata_path(datadir)
|
||||||
pair_s = pair.replace('/', '_')
|
pair_s = pair.replace('/', '_')
|
||||||
file = os.path.join(path, f'{pair_s}-{ticker_interval}.json')
|
file = path.joinpath(f'{pair_s}-{ticker_interval}.json')
|
||||||
gzipfile = file + '.gz'
|
gzipfile = file.with_suffix('.gz')
|
||||||
|
|
||||||
# If the file does not exist we download it when None is returned.
|
# If the file does not exist we download it when None is returned.
|
||||||
# If file exists, read the file, load the json
|
# If file exists, read the file, load the json
|
||||||
if os.path.isfile(gzipfile):
|
if gzipfile.is_file():
|
||||||
logger.debug('Loading ticker data from file %s', gzipfile)
|
logger.debug('Loading ticker data from file %s', gzipfile)
|
||||||
with gzip.open(gzipfile) as tickerdata:
|
with gzip.open(gzipfile) as tickerdata:
|
||||||
pairdata = json.load(tickerdata)
|
pairdata = json.load(tickerdata)
|
||||||
elif os.path.isfile(file):
|
elif file.is_file():
|
||||||
logger.debug('Loading ticker data from file %s', file)
|
logger.debug('Loading ticker data from file %s', file)
|
||||||
with open(file) as tickerdata:
|
with open(file) as tickerdata:
|
||||||
pairdata = json.load(tickerdata)
|
pairdata = json.load(tickerdata)
|
||||||
@ -94,7 +94,7 @@ def load_tickerdata_file(
|
|||||||
return pairdata
|
return pairdata
|
||||||
|
|
||||||
|
|
||||||
def load_data(datadir: str,
|
def load_data(datadir: Path,
|
||||||
ticker_interval: str,
|
ticker_interval: str,
|
||||||
pairs: List[str],
|
pairs: List[str],
|
||||||
refresh_pairs: Optional[bool] = False,
|
refresh_pairs: Optional[bool] = False,
|
||||||
@ -137,13 +137,9 @@ def load_data(datadir: str,
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def make_testdata_path(datadir: str) -> str:
|
def make_testdata_path(datadir: Optional[Path]) -> Path:
|
||||||
"""Return the path where testdata files are stored"""
|
"""Return the path where testdata files are stored"""
|
||||||
return datadir or os.path.abspath(
|
return datadir or (Path(__file__).parent.parent / "tests" / "testdata").resolve()
|
||||||
os.path.join(
|
|
||||||
os.path.dirname(__file__), '..', 'tests', 'testdata'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def download_pairs(datadir, exchange: Exchange, pairs: List[str],
|
def download_pairs(datadir, exchange: Exchange, pairs: List[str],
|
||||||
@ -167,7 +163,7 @@ def download_pairs(datadir, exchange: Exchange, pairs: List[str],
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def load_cached_data_for_updating(filename: str,
|
def load_cached_data_for_updating(filename: Path,
|
||||||
tick_interval: str,
|
tick_interval: str,
|
||||||
timerange: Optional[TimeRange]) -> Tuple[
|
timerange: Optional[TimeRange]) -> Tuple[
|
||||||
List[Any],
|
List[Any],
|
||||||
@ -187,7 +183,7 @@ def load_cached_data_for_updating(filename: str,
|
|||||||
since_ms = arrow.utcnow().shift(minutes=num_minutes).timestamp * 1000
|
since_ms = arrow.utcnow().shift(minutes=num_minutes).timestamp * 1000
|
||||||
|
|
||||||
# read the cached file
|
# read the cached file
|
||||||
if os.path.isfile(filename):
|
if filename.is_file():
|
||||||
with open(filename, "rt") as file:
|
with open(filename, "rt") as file:
|
||||||
data = json_load(file)
|
data = json_load(file)
|
||||||
# remove the last item, because we are not sure if it is correct
|
# remove the last item, because we are not sure if it is correct
|
||||||
@ -210,7 +206,7 @@ def load_cached_data_for_updating(filename: str,
|
|||||||
return (data, since_ms)
|
return (data, since_ms)
|
||||||
|
|
||||||
|
|
||||||
def download_backtesting_testdata(datadir: str,
|
def download_backtesting_testdata(datadir: Path,
|
||||||
exchange: Exchange,
|
exchange: Exchange,
|
||||||
pair: str,
|
pair: str,
|
||||||
tick_interval: str = '5m',
|
tick_interval: str = '5m',
|
||||||
@ -230,7 +226,7 @@ def download_backtesting_testdata(datadir: str,
|
|||||||
"""
|
"""
|
||||||
path = make_testdata_path(datadir)
|
path = make_testdata_path(datadir)
|
||||||
filepair = pair.replace("/", "_")
|
filepair = pair.replace("/", "_")
|
||||||
filename = os.path.join(path, f'{filepair}-{tick_interval}.json')
|
filename = path.joinpath(f'{filepair}-{tick_interval}.json')
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
'Download the pair: "%s", Interval: %s',
|
'Download the pair: "%s", Interval: %s',
|
||||||
|
@ -142,7 +142,7 @@ def plot_analyzed_dataframe(args: Namespace) -> None:
|
|||||||
tickers[pair] = exchange.klines(pair)
|
tickers[pair] = exchange.klines(pair)
|
||||||
else:
|
else:
|
||||||
tickers = history.load_data(
|
tickers = history.load_data(
|
||||||
datadir=_CONF.get("datadir"),
|
datadir=Path(_CONF.get("datadir")),
|
||||||
pairs=[pair],
|
pairs=[pair],
|
||||||
ticker_interval=tick_interval,
|
ticker_interval=tick_interval,
|
||||||
refresh_pairs=_CONF.get('refresh_pairs', False),
|
refresh_pairs=_CONF.get('refresh_pairs', False),
|
||||||
|
@ -13,10 +13,10 @@ Optional Cli parameters
|
|||||||
--export-filename: Specify where the backtest export is located.
|
--export-filename: Specify where the backtest export is located.
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
import os
|
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
from argparse import Namespace
|
from argparse import Namespace
|
||||||
|
from pathlib import Path
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ import plotly.graph_objs as go
|
|||||||
from freqtrade.arguments import Arguments
|
from freqtrade.arguments import Arguments
|
||||||
from freqtrade.configuration import Configuration
|
from freqtrade.configuration import Configuration
|
||||||
from freqtrade import constants
|
from freqtrade import constants
|
||||||
from freqtrade.data as history
|
from freqtrade.data import history
|
||||||
from freqtrade.resolvers import StrategyResolver
|
from freqtrade.resolvers import StrategyResolver
|
||||||
import freqtrade.misc as misc
|
import freqtrade.misc as misc
|
||||||
|
|
||||||
@ -121,7 +121,7 @@ def plot_profit(args: Namespace) -> None:
|
|||||||
logger.info('Filter, keep pairs %s' % pairs)
|
logger.info('Filter, keep pairs %s' % pairs)
|
||||||
|
|
||||||
tickers = history.load_data(
|
tickers = history.load_data(
|
||||||
datadir=config.get('datadir'),
|
datadir=Path(config.get('datadir')),
|
||||||
pairs=pairs,
|
pairs=pairs,
|
||||||
ticker_interval=tick_interval,
|
ticker_interval=tick_interval,
|
||||||
refresh_pairs=False,
|
refresh_pairs=False,
|
||||||
@ -187,7 +187,7 @@ def plot_profit(args: Namespace) -> None:
|
|||||||
)
|
)
|
||||||
fig.append_trace(pair_profit, 3, 1)
|
fig.append_trace(pair_profit, 3, 1)
|
||||||
|
|
||||||
plot(fig, filename=os.path.join('user_data', 'freqtrade-profit-plot.html'))
|
plot(fig, filename=str(Path('user_data').joinpath('freqtrade-profit-plot.html')))
|
||||||
|
|
||||||
|
|
||||||
def define_index(min_date: int, max_date: int, interval: str) -> int:
|
def define_index(min_date: int, max_date: int, interval: str) -> int:
|
||||||
|
Loading…
Reference in New Issue
Block a user