piker/piker/brokers/cli.py

31 lines
800 B
Python
Raw Normal View History

2018-01-26 01:54:13 +00:00
"""
Console interface to broker client/daemons.
"""
2018-01-26 02:08:49 +00:00
import importlib
2018-01-26 01:54:13 +00:00
from pprint import pformat
import click
import trio
from ..log import get_console_log
def run(loglevel, main):
log = get_console_log(loglevel)
# main loop
try:
client = trio.run(main)
except Exception as err:
log.exception(err)
else:
log.debug(
f"Exiting with last access info:\n{pformat(client.access_data)}\n")
@click.command()
@click.option('--broker', default='questrade', help='Broker backend to use')
2018-01-26 02:08:49 +00:00
@click.option('--loglevel', '-l', default='info', help='Logging level')
2018-01-26 01:54:13 +00:00
def pikerd(broker, loglevel):
# import broker module daemon entry point
2018-01-26 02:08:49 +00:00
brokermod = importlib.import_module('.' + broker, 'piker.brokers')
run(loglevel, brokermod.serve_forever)