From 7bbe86d6fb0d2f3098c30fe71a73e09ec4a3a2e3 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Fri, 11 Nov 2022 17:26:32 -0500 Subject: [PATCH] Unpack broker mod and portal from fqsn for brokerd-trade-dialogs --- piker/clearing/_ems.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/piker/clearing/_ems.py b/piker/clearing/_ems.py index b478abcc..ad512c08 100644 --- a/piker/clearing/_ems.py +++ b/piker/clearing/_ems.py @@ -27,6 +27,7 @@ from contextlib import asynccontextmanager as acm from math import isnan from pprint import pformat import time +from types import ModuleType from typing import ( AsyncIterator, Any, @@ -381,14 +382,15 @@ class Router(Struct): @acm async def maybe_open_brokerd_dialog( self, - feed: Feed, + brokermod: ModuleType, + portal: tractor.Portal, exec_mode: str, symbol: str, loglevel: str, ) -> None: - brokermod = feed.mod broker = brokermod.name + relay: TradesRelay = self.relays.get(broker) if ( relay @@ -427,7 +429,7 @@ class Router(Struct): else: # open live brokerd trades endpoint - open_trades_endpoint = feed.portal.open_context( + open_trades_endpoint = portal.open_context( trades_endpoint, loglevel=loglevel, ) @@ -526,8 +528,10 @@ class Router(Struct): loglevel=loglevel, ) as feed, ): - brokermod = feed.mod + brokername, _, _ = unpack_fqsn(fqsn) + brokermod = feed.mods[brokername] broker = brokermod.name + portal = feed.portals[brokermod] # XXX: this should be initial price quote from target provider flume = feed.flumes[fqsn] @@ -536,7 +540,8 @@ class Router(Struct): book.lasts[fqsn]: float = first_quote['last'] async with self.maybe_open_brokerd_dialog( - feed=feed, + brokermod=brokermod, + portal=portal, exec_mode=exec_mode, symbol=symbol, loglevel=loglevel,