diff --git a/piker/brokers/ib/api.py b/piker/brokers/ib/api.py index 0c6bdaa6..7396f710 100644 --- a/piker/brokers/ib/api.py +++ b/piker/brokers/ib/api.py @@ -943,6 +943,7 @@ class Client: ) if tkr: break + except TimeoutError as err: timeouterr = err await asyncio.sleep(0.01) @@ -951,7 +952,9 @@ class Client: else: if not warnset: log.warning( - f'Quote req timed out..maybe venue is closed?\n' + f'Quote req timed out..\n' + f'Maybe the venue is closed?\n' + f'\n' f'{asdict(contract)}' ) warnset = True @@ -963,9 +966,11 @@ class Client: ) break else: - if timeouterr and raise_on_timeout: - import pdbp - pdbp.set_trace() + if ( + timeouterr + and + raise_on_timeout + ): raise timeouterr if not warnset: diff --git a/piker/brokers/ib/broker.py b/piker/brokers/ib/broker.py index c3230501..9e068331 100644 --- a/piker/brokers/ib/broker.py +++ b/piker/brokers/ib/broker.py @@ -116,7 +116,11 @@ def pack_position( symbol=fqme, currency=con.currency, size=float(pos.position), - avg_price=float(pos.avgCost) / float(con.multiplier or 1.0), + avg_price=( + float(pos.avgCost) + / + float(con.multiplier or 1.0) + ), ), ) @@ -562,7 +566,7 @@ async def open_trade_dialog( ledgers: dict[str, TransactionLedger] = {} tables: dict[str, Account] = {} order_msgs: list[Status] = [] - conf = get_config() + conf: dict = get_config() accounts_def_inv: bidict[str, str] = bidict( conf['accounts'] ).inverse diff --git a/piker/brokers/ib/feed.py b/piker/brokers/ib/feed.py index b9f63d8a..51305ced 100644 --- a/piker/brokers/ib/feed.py +++ b/piker/brokers/ib/feed.py @@ -1083,7 +1083,8 @@ async def stream_quotes( con: Contract = details.contract first_ticker: Ticker|None = None - with trio.move_on_after(1.6) as quote_cs: + timeout: float = 1.6 + with trio.move_on_after(timeout) as quote_cs: first_ticker: Ticker = await proxy.get_quote( contract=con, raise_on_timeout=False, @@ -1092,7 +1093,9 @@ async def stream_quotes( # XXX should never happen with this ep right? # but if so then, more then likely mkt is closed? if quote_cs.cancelled_caught: - await tractor.pause() + log.warning( + f'First quote req timed out after {timeout!r}s' + ) if first_ticker: first_quote: dict = normalize(first_ticker)