From 6029f39a3f0c2d9259b8d841454866cfb553aa0e Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Wed, 6 Dec 2023 17:09:52 -0500 Subject: [PATCH] Allow `MktPair.from/to_msg()` to still do `.dst: str` for fsp flumes --- piker/accounting/_mktinfo.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/piker/accounting/_mktinfo.py b/piker/accounting/_mktinfo.py index 34adafa2..a8c719da 100644 --- a/piker/accounting/_mktinfo.py +++ b/piker/accounting/_mktinfo.py @@ -327,7 +327,11 @@ class MktPair(Struct, frozen=True): ) -> dict: d = super().to_dict(**kwargs) d['src'] = self.src.to_dict(**kwargs) - d['dst'] = self.dst.to_dict(**kwargs) + + if not isinstance(self.dst, str): + d['dst'] = self.dst.to_dict(**kwargs) + else: + d['dst'] = str(self.dst) d['price_tick'] = str(self.price_tick) d['size_tick'] = str(self.size_tick) @@ -349,11 +353,16 @@ class MktPair(Struct, frozen=True): Constructor for a received msg-dict normally received over IPC. ''' - dst_asset_msg = msg.pop('dst') - dst = Asset.from_msg(dst_asset_msg) # .copy() + if not isinstance( + dst_asset_msg := msg.pop('dst'), + str, + ): + dst: Asset = Asset.from_msg(dst_asset_msg) # .copy() + else: + dst: str = dst_asset_msg - src_asset_msg = msg.pop('src') - src = Asset.from_msg(src_asset_msg) # .copy() + src_asset_msg: dict = msg.pop('src') + src: Asset = Asset.from_msg(src_asset_msg) # .copy() # XXX NOTE: ``msgspec`` can encode `Decimal` but it doesn't # decide to it by default since we aren't spec-cing these