aboutsummaryrefslogtreecommitdiffstats
path: root/python/api_quotes
diff options
context:
space:
mode:
Diffstat (limited to 'python/api_quotes')
-rw-r--r--python/api_quotes/quotes.py17
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 *"
-)