Cleanup pairlistmanager

This commit is contained in:
hroff-1902 2020-05-17 14:10:11 +03:00
parent ce185a3b19
commit 97c50f86e9

View File

@ -1,9 +1,6 @@
""" """
Static List provider PairList manager class
"""
Provides lists as configured in config.json
"""
import logging import logging
from copy import deepcopy from copy import deepcopy
from typing import Dict, List from typing import Dict, List
@ -14,6 +11,7 @@ from freqtrade.exceptions import OperationalException
from freqtrade.pairlist.IPairList import IPairList from freqtrade.pairlist.IPairList import IPairList
from freqtrade.resolvers import PairListResolver from freqtrade.resolvers import PairListResolver
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -79,8 +77,7 @@ class PairListManager():
""" """
Run pairlist through all configured pairlists. Run pairlist through all configured pairlists.
""" """
# Tickers should be cached to avoid calling the exchange on each call.
# tickers should be cached to avoid calling the exchange on each call.
tickers: Dict = {} tickers: Dict = {}
if self._tickers_needed: if self._tickers_needed:
tickers = self._get_cached_tickers() tickers = self._get_cached_tickers()
@ -92,21 +89,21 @@ class PairListManager():
for pl in self._pairlists: for pl in self._pairlists:
pairlist = pl.filter_pairlist(pairlist, tickers) pairlist = pl.filter_pairlist(pairlist, tickers)
# Validation against blacklist happens after the pairlists to ensure blacklist is respected. # Validation against blacklist happens after the pairlists to ensure
# blacklist is respected.
pairlist = IPairList.verify_blacklist(pairlist, self.blacklist, True) pairlist = IPairList.verify_blacklist(pairlist, self.blacklist, True)
self._whitelist = pairlist self._whitelist = pairlist
def _prepare_whitelist(self, pairlist: List[str], tickers) -> List[str]: def _prepare_whitelist(self, pairlist: List[str], tickers) -> List[str]:
""" """
Prepare pairlist for Pairlist Filters that use tickers data - remove Prepare sanitized pairlist for Pairlist Filters that use tickers data - remove
pairs that do not have ticker available pairs that do not have ticker available
""" """
if self._tickers_needed: if self._tickers_needed:
# Copy list since we're modifying this list # Copy list since we're modifying this list
for p in deepcopy(pairlist): for p in deepcopy(pairlist):
ticker = tickers.get(p) if p not in tickers:
if not ticker:
pairlist.remove(p) pairlist.remove(p)
return pairlist return pairlist