From cfbba9e0b3e3acd1f2d794526ebccdc09b5856fe Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Mon, 20 Mar 2023 20:02:27 -0400 Subject: [PATCH] Add `MktPair._atype` for back-compat, always `str(.dst)` --- piker/accounting/_mktinfo.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/piker/accounting/_mktinfo.py b/piker/accounting/_mktinfo.py index 18a6209c..dc6ee4a6 100644 --- a/piker/accounting/_mktinfo.py +++ b/piker/accounting/_mktinfo.py @@ -215,6 +215,8 @@ class MktPair(Struct, frozen=True): # strike price, call or put, swap type, exercise model, etc. contract_info: str | None = None + _atype: str = '' + @classmethod def from_msg( self, @@ -239,6 +241,8 @@ class MktPair(Struct, frozen=True): size_tick: float | str, bs_mktid: str, + **kwargs, + ) -> MktPair: broker, key, suffix = unpack_fqme(fqme) @@ -254,6 +258,8 @@ class MktPair(Struct, frozen=True): size_tick=size_tick, bs_mktid=bs_mktid, broker=broker, + + **kwargs, ) @property @@ -267,7 +273,7 @@ class MktPair(Struct, frozen=True): "symbol". ''' - return maybe_cons_tokens([self.dst, self.src]) + return maybe_cons_tokens([str(self.dst), self.src]) # NOTE: the main idea behind an fqme is to map a "market address" # to some endpoint from a transaction provider (eg. a broker) such @@ -351,7 +357,10 @@ class MktPair(Struct, frozen=True): # TODO: BACKWARD COMPAT, TO REMOVE? @property def type_key(self) -> str: - return str(self.dst.atype) + if isinstance(self.dst, Asset): + return str(self.dst.atype) + + return self._atype @property def tick_size_digits(self) -> int: