aboutsummaryrefslogtreecommitdiffstats
path: root/python/api_quotes/quotes.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/api_quotes/quotes.py')
-rw-r--r--python/api_quotes/quotes.py42
1 files changed, 39 insertions, 3 deletions
diff --git a/python/api_quotes/quotes.py b/python/api_quotes/quotes.py
index 7899529a..38310568 100644
--- a/python/api_quotes/quotes.py
+++ b/python/api_quotes/quotes.py
@@ -38,9 +38,16 @@ class MarkitQuote(Deal, table_name=None, deal_type=None):
}
return base_attributes
+ # Project
+ # @property
+ # def message(self):
+ # return QuoteDetails.from_tradeid(self.msg_id)
+
@dataclass
-class Quote(MarkitQuote, table_name="markit_singlename_quotes", deal_type=None):
+class SingleNameQuote(
+ MarkitQuote, table_name="markit_singlename_quotes", deal_type=None
+):
quoteid: int
msg_id: str
quotesource: str
@@ -69,12 +76,41 @@ class Quote(MarkitQuote, table_name="markit_singlename_quotes", deal_type=None):
d.update(base_attributes | additional_attributes)
return cls.from_dict(**d)
+
+@dataclass
+class BondQuote(MarkitQuote, table_name="markit_bond_quotes", deal_type=None):
+ quoteid: int
+ msg_id: str
+ quotesource: str
+ confidence: int
+ identifier: str = None
+ cusip: str = None
+ bidprice: float = None
+ bidsize: float = None
+ askprice: float = None
+ asksize: float = None
+ pricelevel: float = None
+ subtype: str = None
+ quotetype: str = None
+ firmness: firmness = None
+ quotedate: datetime.datetime = None
+
+ @classmethod
+ def from_markit_line(cls, d):
+ base_attributes = super().from_markit_line(d)
+ additional_attributes = {
+ "identifier": d["internalinstrumentidentifier"],
+ "pricelevel": d.get("pricelevelnormalized"),
+ }
+ d.update(base_attributes | additional_attributes)
+ return cls.from_dict(**d)
+
@property
def message(self):
return QuoteDetails.from_tradeid(self.msg_id)
-Quote.init_dbconn(dbconn("serenitasdb"))
-Quote._sql_insert = Quote._sql_insert.replace(
+MarkitQuote.init_dbconn(dbconn("serenitasdb"))
+MarkitQuote._sql_insert = MarkitQuote._sql_insert.replace(
"RETURNING *", "ON CONFLICT (quoteid) DO NOTHING RETURNING *"
)