Allow `MktPair.from/to_msg()` to still do `.dst: str` for fsp flumes
parent
656e2c6a88
commit
6029f39a3f
|
@ -327,7 +327,11 @@ class MktPair(Struct, frozen=True):
|
||||||
) -> dict:
|
) -> dict:
|
||||||
d = super().to_dict(**kwargs)
|
d = super().to_dict(**kwargs)
|
||||||
d['src'] = self.src.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['price_tick'] = str(self.price_tick)
|
||||||
d['size_tick'] = str(self.size_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.
|
Constructor for a received msg-dict normally received over IPC.
|
||||||
|
|
||||||
'''
|
'''
|
||||||
dst_asset_msg = msg.pop('dst')
|
if not isinstance(
|
||||||
dst = Asset.from_msg(dst_asset_msg) # .copy()
|
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_msg: dict = msg.pop('src')
|
||||||
src = Asset.from_msg(src_asset_msg) # .copy()
|
src: Asset = Asset.from_msg(src_asset_msg) # .copy()
|
||||||
|
|
||||||
# XXX NOTE: ``msgspec`` can encode `Decimal` but it doesn't
|
# XXX NOTE: ``msgspec`` can encode `Decimal` but it doesn't
|
||||||
# decide to it by default since we aren't spec-cing these
|
# decide to it by default since we aren't spec-cing these
|
||||||
|
|
Loading…
Reference in New Issue