aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/markit_parse.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/python/markit_parse.py b/python/markit_parse.py
new file mode 100644
index 00000000..70ca27ec
--- /dev/null
+++ b/python/markit_parse.py
@@ -0,0 +1,44 @@
+from serenitas.utils.misc import get_credential_path
+import json
+import posixpath
+from urllib.parse import urljoin
+from typing import ClassVar
+import requests
+
+
+class MarkitAPI:
+ api_key: ClassVar = None
+ base_url: ClassVar = None
+
+ @classmethod
+ def set_api(cls):
+ creds = cls.get_creds()
+ r = requests.post(
+ urljoin(creds["url"], "apikey"),
+ data={"username": creds["username"], "password": creds["password"]},
+ )
+ cls.api_key = r.text
+ cls.base_url = creds["url"]
+
+ @classmethod
+ def get_data(cls, asset_class, service="latest"):
+ _asset_class_to_markit = {"sn_cds": "CD"}
+ params = {
+ "format": "json",
+ "assetClass": _asset_class_to_markit[asset_class],
+ "apikey": cls.api_key,
+ "limit": 1000,
+ }
+
+ path = posixpath.join("parsing", "Quote", service)
+ breakpoint()
+ url = urljoin(cls.base_url, path)
+ r = requests.get(url, params)
+ # print(r.status_code, r.text[:100])
+ return json.loads(r.text)
+
+ @classmethod
+ def get_creds(cls):
+ cred_path = get_credential_path("markit_api")
+ creds = json.load(cred_path.open())
+ return creds