diff --git a/piker/brokers/ib/api.py b/piker/brokers/ib/api.py index d2fb00dc..b12e723b 100644 --- a/piker/brokers/ib/api.py +++ b/piker/brokers/ib/api.py @@ -640,6 +640,7 @@ class Client: ready = ticker.updateEvent # ensure a last price gets filled in before we deliver quote + warnset: bool = False for _ in range(100): if isnan(ticker.last): @@ -650,17 +651,21 @@ class Client: if ready in done: break else: - log.warning( - f'Quote for {symbol} timed out: market is closed?' - ) + if not warnset: + log.warning( + f'Quote for {symbol} timed out: market is closed?' + ) + warnset = True else: log.info(f'Got first quote for {symbol}') break else: - log.warning( - f'Symbol {symbol} is not returning a quote ' - 'it may be outside trading hours?') + if not warnset: + log.warning( + f'Symbol {symbol} is not returning a quote ' + 'it may be outside trading hours?') + warnset = True return contract, ticker, details diff --git a/piker/ui/_flows.py b/piker/ui/_flows.py index 5f92b429..2c2d0b66 100644 --- a/piker/ui/_flows.py +++ b/piker/ui/_flows.py @@ -753,7 +753,9 @@ class Flow(msgspec.Struct): # , frozen=True): try: iuppx = x[-uppx] except IndexError: - iuppx = x + # we're less then an x-px wide so just grab the start + # datum index. + iuppx = x[0] dsg._last_line = QLineF( iuppx, ymn,