list-exchanges subcommand added

This commit is contained in:
hroff-1902 2019-06-12 12:33:20 +03:00
parent 08105641d9
commit 9c64965808
2 changed files with 62 additions and 0 deletions

View File

@ -335,12 +335,25 @@ class Arguments(object):
metavar='INT',
)
@staticmethod
def list_exchanges_options(parser: argparse.ArgumentParser) -> None:
"""
Parses given arguments for the list-exchanges command.
"""
parser.add_argument(
'-1',
help='Print exchanges in one column',
action='store_true',
dest='print_one_column',
)
def _build_subcommands(self) -> None:
"""
Builds and attaches all subcommands
:return: None
"""
from freqtrade.optimize import start_backtesting, start_hyperopt, start_edge
from freqtrade.utils import start_list_exchanges
subparsers = self.parser.add_subparsers(dest='subparser')
@ -362,6 +375,11 @@ class Arguments(object):
self.optimizer_shared_options(hyperopt_cmd)
self.hyperopt_options(hyperopt_cmd)
# Add list-exchanges subcommand
list_exchanges_cmd = subparsers.add_parser('list-exchanges', help='List known exchanges.')
list_exchanges_cmd.set_defaults(func=start_list_exchanges)
self.list_exchanges_options(list_exchanges_cmd)
@staticmethod
def parse_timerange(text: Optional[str]) -> TimeRange:
"""

44
freqtrade/utils.py Normal file
View File

@ -0,0 +1,44 @@
import logging
from argparse import Namespace
from typing import Any, Dict
from freqtrade.configuration import Configuration
from freqtrade.exchange import supported_exchanges
from freqtrade.state import RunMode
logger = logging.getLogger(__name__)
def setup_configuration(args: Namespace, method: RunMode) -> Dict[str, Any]:
"""
Prepare the configuration for the Hyperopt module
:param args: Cli args from Arguments()
:return: Configuration
"""
configuration = Configuration(args, method)
config = configuration.load_config()
# Ensure we do not use Exchange credentials
config['exchange']['key'] = ''
config['exchange']['secret'] = ''
return config
def start_list_exchanges(args: Namespace) -> None:
"""
Start listing known exchanges
:param args: Cli args from Arguments()
:return: None
"""
# Initialize configuration
config = setup_configuration(args, RunMode.OTHER)
logger.debug('Starting freqtrade in cli-util mode')
if args.print_one_column:
print('\n'.join(supported_exchanges()))
else:
print(f"Supported exchanges: {', '.join(supported_exchanges())}")