Adhere to the same non-found-symbol behaviour as QT
parent
f35671cc88
commit
61294c6c44
|
@ -2,6 +2,7 @@
|
||||||
Robinhood API backend.
|
Robinhood API backend.
|
||||||
"""
|
"""
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
from typing import List
|
||||||
|
|
||||||
from async_generator import asynccontextmanager
|
from async_generator import asynccontextmanager
|
||||||
# TODO: move to urllib3/requests once supported
|
# TODO: move to urllib3/requests once supported
|
||||||
|
@ -44,7 +45,7 @@ class Client:
|
||||||
self._sess.base_location = _service_ep
|
self._sess.base_location = _service_ep
|
||||||
self.api = _API(self._sess)
|
self.api = _API(self._sess)
|
||||||
|
|
||||||
def _zip_in_order(self, symbols: [str], results_dict: dict):
|
def _zip_in_order(self, symbols: [str], quotes: List[dict]):
|
||||||
return {quote.get('symbol', sym) if quote else sym: quote
|
return {quote.get('symbol', sym) if quote else sym: quote
|
||||||
for sym, quote in zip(symbols, results_dict)}
|
for sym, quote in zip(symbols, results_dict)}
|
||||||
|
|
||||||
|
@ -52,11 +53,16 @@ class Client:
|
||||||
"""Retrieve quotes for a list of ``symbols``.
|
"""Retrieve quotes for a list of ``symbols``.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
resp = await self.api.quotes(','.join(symbols))
|
quotes = (await self.api.quotes(','.join(symbols)))['results']
|
||||||
except BrokerError:
|
except BrokerError:
|
||||||
resp = {'results': [None] * len(symbols)}
|
quotes = [None] * len(symbols)
|
||||||
|
|
||||||
return self._zip_in_order(symbols, resp['results'])
|
for quote in quotes:
|
||||||
|
# insert our subscription key field
|
||||||
|
if quote is not None:
|
||||||
|
quote['key'] = quote['symbol']
|
||||||
|
|
||||||
|
return list(filter(bool, quotes))
|
||||||
|
|
||||||
async def symbol_data(self, symbols: [str]):
|
async def symbol_data(self, symbols: [str]):
|
||||||
"""Retrieve symbol data via the ``fundamentals`` endpoint.
|
"""Retrieve symbol data via the ``fundamentals`` endpoint.
|
||||||
|
|
Loading…
Reference in New Issue