From f77a39ceb79f2b836f621586a9dd40a28143ec3e Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Tue, 16 Jun 2020 11:55:37 -0400 Subject: [PATCH] Add symbol-info command --- piker/brokers/cli.py | 23 +++++++++++++++++++++++ piker/brokers/core.py | 12 ------------ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/piker/brokers/cli.py b/piker/brokers/cli.py index c05be413..9f1ee4fa 100644 --- a/piker/brokers/cli.py +++ b/piker/brokers/cli.py @@ -225,3 +225,26 @@ def optsquote(config, symbol, df_output, date): click.echo(df) else: click.echo(colorize_json(quotes)) + + +@cli.command() +@click.argument('tickers', nargs=-1, required=True) +@click.pass_obj +def symbol_info(config, tickers): + """Print symbol quotes to the console + """ + # global opts + brokermod = config['brokermod'] + + quotes = trio.run(partial(core.symbol_info, brokermod, tickers)) + if not quotes: + log.error(f"No quotes could be found for {tickers}?") + return + + if len(quotes) < len(tickers): + syms = tuple(map(itemgetter('symbol'), quotes)) + for ticker in tickers: + if ticker not in syms: + brokermod.log.warn(f"Could not find symbol {ticker}?") + + click.echo(colorize_json(quotes)) diff --git a/piker/brokers/core.py b/piker/brokers/core.py index 2e672c61..e65fcb40 100644 --- a/piker/brokers/core.py +++ b/piker/brokers/core.py @@ -108,15 +108,3 @@ async def symbol_info( """ async with brokermod.get_client() as client: return await client.symbol_info(symbol, **kwargs) - - -async def symbol_search( - brokermod: ModuleType, - symbol: str, - **kwargs, -) -> Dict[str, Dict[str, Dict[str, Any]]]: - """Return symbol info from broker. - """ - async with brokermod.get_client() as client: - # TODO: support multiple asset type concurrent searches. - return await client.search_stocks(symbol, **kwargs)