Added KWarg to calls to ujson, this aligns it FP presicion handing

with how python json manages imports.

Added log.

All DFs are now aligns, tests passes.

We cannot call import ujson as json as the kwarg breaks regular json.
This commit is contained in:
creslinux 2018-07-12 16:06:02 +00:00
parent 801b77cf8c
commit 3b7bcf9b35

View File

@ -11,13 +11,13 @@ from freqtrade import misc, constants, OperationalException
from freqtrade.exchange import Exchange from freqtrade.exchange import Exchange
from freqtrade.arguments import TimeRange from freqtrade.arguments import TimeRange
logger = logging.getLogger(__name__)
import importlib import importlib
ujson_found = importlib.util.find_spec("ujson") ujson_found = importlib.util.find_spec("ujson")
if ujson_found is not None: if ujson_found is not None:
import ujson import ujson
logger.debug('Loaded UltraJson ujson in optimize.py')
logger = logging.getLogger(__name__)
def trim_tickerlist(tickerlist: List[Dict], timerange: TimeRange) -> List[Dict]: def trim_tickerlist(tickerlist: List[Dict], timerange: TimeRange) -> List[Dict]:
if not tickerlist: if not tickerlist:
@ -68,12 +68,15 @@ def load_tickerdata_file(
if os.path.isfile(gzipfile): if os.path.isfile(gzipfile):
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:
if ujson_found is not None:
pairdata = ujson.load(tickerdata, precise_float=True)
else:
pairdata = json.load(tickerdata) pairdata = json.load(tickerdata)
elif os.path.isfile(file): elif os.path.isfile(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:
if ujson_found is not None: if ujson_found is not None:
pairdata = ujson.load(tickerdata) pairdata = ujson.load(tickerdata, precise_float=True)
else: else:
pairdata = json.load(tickerdata) pairdata = json.load(tickerdata)
else: else:
@ -171,6 +174,9 @@ def load_cached_data_for_updating(filename: str,
# read the cached file # read the cached file
if os.path.isfile(filename): if os.path.isfile(filename):
with open(filename, "rt") as file: with open(filename, "rt") as file:
if ujson_found is not None:
data = ujson.load(file, precise_float=True)
else:
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
# it could be fetched when the candle was incompleted # it could be fetched when the candle was incompleted