Adhere to the same non-found-symbol behaviour as QT
							parent
							
								
									f35671cc88
								
							
						
					
					
						commit
						61294c6c44
					
				|  | @ -2,6 +2,7 @@ | |||
| Robinhood API backend. | ||||
| """ | ||||
| from functools import partial | ||||
| from typing import List | ||||
| 
 | ||||
| from async_generator import asynccontextmanager | ||||
| # TODO: move to urllib3/requests once supported | ||||
|  | @ -44,7 +45,7 @@ class Client: | |||
|         self._sess.base_location = _service_ep | ||||
|         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 | ||||
|                 for sym, quote in zip(symbols, results_dict)} | ||||
| 
 | ||||
|  | @ -52,11 +53,16 @@ class Client: | |||
|         """Retrieve quotes for a list of ``symbols``. | ||||
|         """ | ||||
|         try: | ||||
|             resp = await self.api.quotes(','.join(symbols)) | ||||
|             quotes = (await self.api.quotes(','.join(symbols)))['results'] | ||||
|         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]): | ||||
|         """Retrieve symbol data via the ``fundamentals`` endpoint. | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue