Use `Client` in watchlist app
parent
17feb17535
commit
4123139750
|
@ -319,7 +319,7 @@ async def update_quotes(
|
|||
nursery: 'Nursery',
|
||||
brokermod: ModuleType,
|
||||
widgets: dict,
|
||||
queue: 'StreamQueue',
|
||||
client: 'Client',
|
||||
symbol_data: dict,
|
||||
first_quotes: dict
|
||||
):
|
||||
|
@ -359,7 +359,7 @@ async def update_quotes(
|
|||
grid.render_rows(cache)
|
||||
|
||||
# core cell update loop
|
||||
async for quotes in queue: # new quotes data only
|
||||
async for quotes in client.aiter_recv(): # new quotes data only
|
||||
for symbol, quote in quotes.items():
|
||||
record, displayable = brokermod.format_quote(
|
||||
quote, symbol_data=symbol_data)
|
||||
|
@ -374,6 +374,7 @@ async def update_quotes(
|
|||
log.warn("Server connection dropped")
|
||||
nursery.cancel_scope.cancel()
|
||||
|
||||
|
||||
async def run_kivy(root, nursery):
|
||||
'''Trio-kivy entry point.
|
||||
'''
|
||||
|
@ -387,18 +388,22 @@ async def _async_main(name, tickers, brokermod, rate):
|
|||
This is started with cli command `piker watch`.
|
||||
'''
|
||||
# setup ticker stream
|
||||
from ..brokers.core import StreamQueue
|
||||
queue = StreamQueue(await trio.open_tcp_stream('127.0.0.1', 1616))
|
||||
await queue.put((brokermod.name, tickers)) # initial request for symbols price streams
|
||||
from ..brokers.core import Client
|
||||
|
||||
async def subscribe(client):
|
||||
# initial request for symbols price streams
|
||||
await client.send((brokermod.name, tickers))
|
||||
|
||||
async with Client(('127.0.0.1', 1616), subscribe) as client:
|
||||
|
||||
# get initial symbol data
|
||||
async with brokermod.get_client() as client:
|
||||
async with brokermod.get_client() as bclient:
|
||||
# get long term data including last days close price
|
||||
sd = await client.symbol_data(tickers)
|
||||
sd = await bclient.symbol_data(tickers)
|
||||
|
||||
async with trio.open_nursery() as nursery:
|
||||
# get first quotes response
|
||||
quotes = await queue.get()
|
||||
quotes = await client.recv()
|
||||
first_quotes = [
|
||||
brokermod.format_quote(quote, symbol_data=sd)[0]
|
||||
for quote in quotes.values()]
|
||||
|
@ -459,4 +464,4 @@ async def _async_main(name, tickers, brokermod, rate):
|
|||
}
|
||||
nursery.start_soon(run_kivy, widgets['root'], nursery)
|
||||
nursery.start_soon(
|
||||
update_quotes, nursery, brokermod, widgets, queue, sd, quotes)
|
||||
update_quotes, nursery, brokermod, widgets, client, sd, quotes)
|
||||
|
|
Loading…
Reference in New Issue