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)
|