diff options
Diffstat (limited to 'python/api_quotes/quotes.py')
| -rw-r--r-- | python/api_quotes/quotes.py | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/python/api_quotes/quotes.py b/python/api_quotes/quotes.py index 04b6da09..daa3decb 100644 --- a/python/api_quotes/quotes.py +++ b/python/api_quotes/quotes.py @@ -26,6 +26,8 @@ class MarkitQuoteKind: return SingleNameQuote case "ABS": return BondQuote + case "TRS": + return TRSQuote class MarkitQuote(Deal, table_name=None, deal_type=None): @@ -114,6 +116,32 @@ class BondQuote(MarkitQuote, table_name="markit_bond_quotes", deal_type=None): d.update(base_attributes | additional_attributes) return cls.from_dict(**d) - @property - def message(self): - return QuoteDetails.from_tradeid(self.msg_id) + +@dataclass +class TRSQuote(MarkitQuote, table_name="markit_trs_quotes", deal_type=None): + quoteid: int + msg_id: str + quotesource: str + confidence: int + maturity: datetime.date + identifier: str = None + bidlevel: float = None + asklevel: float = None + nav: float = None + ref: float = None + firmness: firmness = None + funding_benchmark: str = None + quotedate: datetime.datetime = None + + @classmethod + def from_markit_line(cls, d): + base_attributes = super().from_markit_line(d) + additional_attributes = { + "identifier": d["ticker"], + "ref": d.get("reference"), + "nav": d.get("inavparsed"), + "funding_benchmark": d.get("parsedbenchmark"), + "maturity": maturity_dt(d), + } + d.update(base_attributes | additional_attributes) + return cls.from_dict(**d) |
