aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/markit_red.py33
1 files changed, 18 insertions, 15 deletions
diff --git a/python/markit_red.py b/python/markit_red.py
index e10381ba..6da0ffb8 100644
--- a/python/markit_red.py
+++ b/python/markit_red.py
@@ -1,7 +1,11 @@
import csv
-from lxml import etree
-import requests, io, zipfile, shutil
+import io
import os
+import requests
+import shutil
+import zipfile
+from pathlib import Path
+from lxml import etree
from db import with_connection, dbengine
import pandas as pd
@@ -29,9 +33,9 @@ def download_report(report):
if report in ['CredIndexAnnex', 'CredIndexAnnexSplit']:
for family in ['CDX', 'ITRAXX-EUROPE']:
payload.update({'family': family})
- return request_payload(payload)
+ yield request_payload(payload)
else:
- return request_payload(payload)
+ yield request_payload(payload)
@with_connection('serenitasdb')
def update_redcodes(conn, fname):
@@ -57,17 +61,17 @@ def update_redcodes(conn, fname):
df_maturity.to_sql("index_maturity_markit", serenitas_engine, index=False, if_exists='append')
def update_redindices(fname):
- basedir = os.path.join(os.environ['BASE_DIR'], "Tranche_data", "RED_reports")
- with open(os.path.join(basedir, fname)) as fh:
+ basedir = Path(os.environ['BASE_DIR']) / "Tranche_data"
+ with open(basedir / "RED_reports" / fname) as fh:
e = etree.parse(fh)
root = e.getroot()
headers = ['referenceentity', 'redentitycode', 'role', 'redpaircode', 'jurisdiction',
- 'tier','pairiscurrent', 'pairvalidto', 'pairvalidfrom', 'ticker',
- 'ispreferred', 'isdatransactiontype', 'docclause','recorddate',
- 'publiccomments','weight']
+ 'tier', 'pairiscurrent', 'pairvalidto', 'pairvalidfrom', 'ticker',
+ 'ispreferred', 'isdatransactiontype', 'docclause', 'recorddate',
+ 'publiccomments', 'weight']
for c in root.findall('index'):
names = [c.find(tag).text for tag in ['indexsubfamily', 'series', 'version']]
- with open( os.path.join(basedir, "{0}.{1}.V{2}.csv".format(*names)), "w") as fh2:
+ with open( basedir / "RED_indices" / "{0}.{1}.V{2}.csv".format(*names), "w") as fh2:
csvwriter = csv.DictWriter(fh2, fieldnames=headers)
csvwriter.writeheader()
data = []
@@ -76,12 +80,11 @@ def update_redindices(fname):
data = sorted(data, key=lambda x: x['referenceentity'])
csvwriter.writerows(data)
-if __name__=="__main__":
- fname = download_report("REDIndexCodes")
+if __name__ == "__main__":
+ fname = next(download_report("REDIndexCodes"))
update_redcodes(fname[0])
- # f1, f2 = download_report("CredIndexAnnex")
- # update_redindices(f1)
- # update_redindices(f2)
+ # for f in download_report("CredIndexAnnex"):
+ # update_redindices(f[0])
# report_list = ['REDEntity', 'REDObligation', 'REDObligationPreferred']
# for report in report_list:
# download_report(report)