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