diff options
| -rw-r--r-- | python/api_quotes/quotes.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/python/api_quotes/quotes.py b/python/api_quotes/quotes.py index 38310568..f701bdf9 100644 --- a/python/api_quotes/quotes.py +++ b/python/api_quotes/quotes.py @@ -23,10 +23,19 @@ class MarkitQuoteKind: def __class_getitem__(cls, quote_type: str): match quote_type: case "CD": - return Quote + return SingleNameQuote + case "ABS": + return BondQuote class MarkitQuote(Deal, table_name=None, deal_type=None): + def __init_subclass__(cls, deal_type, table_name: str, **kwargs): + super().__init_subclass__(deal_type=deal_type, table_name=table_name, **kwargs) + cls._sql_insert = cls._sql_insert.replace( + "RETURNING *", "ON CONFLICT (quoteid) DO NOTHING RETURNING *" + ) + cls.init_dbconn(dbconn("serenitasdb")) + @classmethod def from_markit_line(cls, d): base_attributes = { @@ -108,9 +117,3 @@ class BondQuote(MarkitQuote, table_name="markit_bond_quotes", deal_type=None): @property def message(self): return QuoteDetails.from_tradeid(self.msg_id) - - -MarkitQuote.init_dbconn(dbconn("serenitasdb")) -MarkitQuote._sql_insert = MarkitQuote._sql_insert.replace( - "RETURNING *", "ON CONFLICT (quoteid) DO NOTHING RETURNING *" -) |
