Improve supported exchange check by supporting exchange aliases
This commit is contained in:
		| @@ -12,8 +12,8 @@ from freqtrade.exchange.coinbasepro import Coinbasepro | ||||
| from freqtrade.exchange.exchange import (amount_to_contract_precision, amount_to_contracts, | ||||
|                                          amount_to_precision, available_exchanges, ccxt_exchanges, | ||||
|                                          contracts_to_amount, date_minus_candles, | ||||
|                                          is_exchange_known_ccxt, is_exchange_officially_supported, | ||||
|                                          market_is_active, price_to_precision, timeframe_to_minutes, | ||||
|                                          is_exchange_known_ccxt, market_is_active, | ||||
|                                          price_to_precision, timeframe_to_minutes, | ||||
|                                          timeframe_to_msecs, timeframe_to_next_date, | ||||
|                                          timeframe_to_prev_date, timeframe_to_seconds, | ||||
|                                          validate_exchange, validate_exchanges) | ||||
|   | ||||
| @@ -3,8 +3,8 @@ import logging | ||||
| from freqtrade.constants import Config | ||||
| from freqtrade.enums import RunMode | ||||
| from freqtrade.exceptions import OperationalException | ||||
| from freqtrade.exchange import (available_exchanges, is_exchange_known_ccxt, | ||||
|                                 is_exchange_officially_supported, validate_exchange) | ||||
| from freqtrade.exchange import available_exchanges, is_exchange_known_ccxt, validate_exchange | ||||
| from freqtrade.exchange.common import MAP_EXCHANGE_CHILDCLASS, SUPPORTED_EXCHANGES | ||||
|  | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
| @@ -52,7 +52,7 @@ def check_exchange(config: Config, check_for_bad: bool = True) -> bool: | ||||
|         else: | ||||
|             logger.warning(f'Exchange "{exchange}"  will not work with Freqtrade. Reason: {reason}') | ||||
|  | ||||
|     if is_exchange_officially_supported(exchange): | ||||
|     if MAP_EXCHANGE_CHILDCLASS.get(exchange, exchange) in SUPPORTED_EXCHANGES: | ||||
|         logger.info(f'Exchange "{exchange}" is officially supported ' | ||||
|                     f'by the Freqtrade development team.') | ||||
|     else: | ||||
|   | ||||
| @@ -30,8 +30,7 @@ from freqtrade.exceptions import (DDosProtection, ExchangeError, InsufficientFun | ||||
|                                   RetryableOrderError, TemporaryError) | ||||
| from freqtrade.exchange.common import (API_FETCH_ORDER_RETRY_COUNT, BAD_EXCHANGES, | ||||
|                                        EXCHANGE_HAS_OPTIONAL, EXCHANGE_HAS_REQUIRED, | ||||
|                                        SUPPORTED_EXCHANGES, remove_credentials, retrier, | ||||
|                                        retrier_async) | ||||
|                                        remove_credentials, retrier, retrier_async) | ||||
| from freqtrade.misc import (chunks, deep_merge_dicts, file_dump_json, file_load_json, | ||||
|                             safe_value_fallback2) | ||||
| from freqtrade.plugins.pairlist.pairlist_helpers import expand_pairlist | ||||
| @@ -2773,10 +2772,6 @@ def is_exchange_known_ccxt(exchange_name: str, ccxt_module: CcxtModuleType = Non | ||||
|     return exchange_name in ccxt_exchanges(ccxt_module) | ||||
|  | ||||
|  | ||||
| def is_exchange_officially_supported(exchange_name: str) -> bool: | ||||
|     return exchange_name in SUPPORTED_EXCHANGES | ||||
|  | ||||
|  | ||||
| def ccxt_exchanges(ccxt_module: CcxtModuleType = None) -> List[str]: | ||||
|     """ | ||||
|     Return the list of all exchanges known to ccxt | ||||
|   | ||||
| @@ -20,10 +20,26 @@ def test_check_exchange(default_conf, caplog) -> None: | ||||
|     # Test an officially supported by Freqtrade team exchange | ||||
|     default_conf.get('exchange').update({'name': 'binance'}) | ||||
|     assert check_exchange(default_conf) | ||||
|     assert log_has_re(r"Exchange .* is officially supported by the Freqtrade development team\.", | ||||
|                       caplog) | ||||
|     assert log_has_re( | ||||
|         r"Exchange \"binance\" is officially supported by the Freqtrade development team\.", | ||||
|         caplog) | ||||
|     caplog.clear() | ||||
|  | ||||
|     # Test an officially supported by Freqtrade team exchange | ||||
|     default_conf.get('exchange').update({'name': 'binanceus'}) | ||||
|     assert check_exchange(default_conf) | ||||
|     assert log_has_re( | ||||
|         r"Exchange \"binanceus\" is officially supported by the Freqtrade development team\.", | ||||
|         caplog) | ||||
|     caplog.clear() | ||||
|  | ||||
|     # Test an officially supported by Freqtrade team exchange - with remapping | ||||
|     default_conf.get('exchange').update({'name': 'okex'}) | ||||
|     assert check_exchange(default_conf) | ||||
|     assert log_has_re( | ||||
|         r"Exchange \"okex\" is officially supported by the Freqtrade development team\.", | ||||
|         caplog) | ||||
|     caplog.clear() | ||||
|     # Test an available exchange, supported by ccxt | ||||
|     default_conf.get('exchange').update({'name': 'huobipro'}) | ||||
|     assert check_exchange(default_conf) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user