From 801b77cf8c7c48f04b918e0518ce28bb0abe5fc2 Mon Sep 17 00:00:00 2001 From: creslinux Date: Thu, 12 Jul 2018 13:05:09 +0000 Subject: [PATCH] Make module optional, hashed out by default in requirements.txt optimise tests for module to decide how to load tickers. --- freqtrade/optimize/__init__.py | 11 +++++++++-- requirements.txt | 5 ++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/freqtrade/optimize/__init__.py b/freqtrade/optimize/__init__.py index f451c68b8..ac5cda4d0 100644 --- a/freqtrade/optimize/__init__.py +++ b/freqtrade/optimize/__init__.py @@ -2,7 +2,6 @@ import gzip import json -import ujson import logging import os from typing import Optional, List, Dict, Tuple, Any @@ -12,6 +11,11 @@ from freqtrade import misc, constants, OperationalException from freqtrade.exchange import Exchange from freqtrade.arguments import TimeRange +import importlib +ujson_found = importlib.util.find_spec("ujson") +if ujson_found is not None: + import ujson + logger = logging.getLogger(__name__) @@ -68,7 +72,10 @@ def load_tickerdata_file( elif os.path.isfile(file): logger.debug('Loading ticker data from file %s', file) with open(file) as tickerdata: - pairdata = ujson.load(tickerdata) + if ujson_found is not None: + pairdata = ujson.load(tickerdata) + else: + pairdata = json.load(tickerdata) else: return None diff --git a/requirements.txt b/requirements.txt index d118f3be4..948c2a1c5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,7 +17,10 @@ pytest-mock==1.10.0 pytest-cov==2.5.1 tabulate==0.8.2 coinmarketcap==5.0.3 -ujson==1.35 + +# Optional, speeds up ticker load +# Requires visual studio in windows. +#ujson==1.35 # Required for hyperopt scikit-optimize==0.5.2