diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/api_quotes/api.py | 6 | ||||
| -rw-r--r-- | python/api_quotes/quotes.py | 42 |
2 files changed, 19 insertions, 29 deletions
diff --git a/python/api_quotes/api.py b/python/api_quotes/api.py index a328d619..4d6f5783 100644 --- a/python/api_quotes/api.py +++ b/python/api_quotes/api.py @@ -35,10 +35,10 @@ class MarkitAPI: path = posixpath.join("parsing", "Quote", service) url = urljoin(cls.base_url, path) r = requests.get(url, params) - return json.loads(r.text) + return cls.read_api(r) @staticmethod def read_api(r): df = pd.DataFrame.from_dict(json.loads(r.text)) - df.column = df.columns.lower() - return df + df.columns = df.columns.str.lower() + return df.to_dict(orient="records") diff --git a/python/api_quotes/quotes.py b/python/api_quotes/quotes.py index 43585814..aff245b9 100644 --- a/python/api_quotes/quotes.py +++ b/python/api_quotes/quotes.py @@ -8,7 +8,7 @@ asset_class = Literal["CD"] @dataclass -class QuoteDetails(Deal, table="markit_quote_details", deal_type=None): +class QuoteDetails(Deal, table_name="markit_quote_details", deal_type=None): quotetime: datetime quote_source: str id: int @@ -16,7 +16,7 @@ class QuoteDetails(Deal, table="markit_quote_details", deal_type=None): @dataclass -class Quote(Deal, table="markit_quotes", deal_type=None): +class Quote(Deal, table_name="markit_quotes", deal_type=None): quoteid: int assetclass: asset_class redcode: str @@ -24,40 +24,30 @@ class Quote(Deal, table="markit_quotes", deal_type=None): maturity: datetime.date tenor: int runningcoupon: int - bidspread: float + bidconventionalspread: float bidupfront: float bidsize: float - askspread: float + askconventionalspread: float askupfront: float asksize: float - quotefirness: firmness - msgid: str + firmness: firmness + msg_id: str quotedate: datetime quotesource: str @classmethod def from_markit_line(cls, d): - return cls( - quote_id=line["quoteid"], - asset_class=line["assetclass"], - redcode=line["redcode"], - ticker=line["ticker"], - maturity=datetime.date( - line["maturityYear"], line["maturityMonth"], line["maturityDay"] + additional_attributes = { + "maturity": datetime.date( + int(d["maturityyear"]), int(d["maturitymonth"]), int(d["maturityday"]) ), - tenor=line["tenor"], - running_coupon=line["runningCoupon"], - bid_spread=line["bidConventionalSpread"], - bid_upfront=line["bidUpfront"], - bid_size=line["bidSize"], - ask_spread=line["askConventionalSpread"], - ask_upfront=line["askUpfront"], - ask_size=line["askSize"], - quote_firmness=line["firmness"], - msg_id=line["message"]["id"], - quotedate=line["receivedDateTime"], - quote_source=line["sourceShortName"], - ) + "msg_id": d["message"]["id"], + "quotedate": d["receiveddatetime"], + "quotesource": d["sourceshortname"], + } + d.update(additional_attributes) + breakpoint() + return cls.from_dict(**d) @property def message(self): |
