import requests from common import root from db import conn import os import datetime import csv import sys import zipfile, io import shutil def convertToNone(v): return v if v else None def download_cds_data(payload): r = requests.get('https://www.markit.com/export.jsp', params=payload) f2 = open(os.path.join(root, "Tranche_data", "CDS", "cds eod {0}.csv".format(payload['date'])), "wb") with zipfile.ZipFile(io.BytesIO(r.content)) as z: for f in z.namelist(): if "csv" in f: f1 = z.open(f) next(f1) next(f1) shutil.copyfileobj(f1, f2) f1.close() f2.close() def download_composite_data(payload): for report in ['COMPOSITES', 'TRANCHE_COMPOSITES']: for family in ['CDX', 'ITRAXX-EUROPE']: payload.update({'family': family, 'report': report}) r = requests.get('https://www.markit.com/export.jsp', params=payload) try: with zipfile.ZipFile(io.BytesIO(r.content)) as z: for f in z.namelist(): if "csv" in f: z.extract(f, path=os.path.join(root, "Tranche_data", "Composite_reports")) except zipfile.BadZipFile: print(r.content) continue if __name__=="__main__": if len(sys.argv) > 1: workdate = datetime.datetime.strptime(sys.argv[1], "%Y-%m-%d").date() else: workdate = datetime.date.today() workdate = datetime.datetime.strftime(workdate, "%Y%m%d") payload = {'user': 'GuillaumeHorel', 'password': 'password', 'version': '5', 'format': 'csv', 'report': 'FIXED_COUPON', 'date': workdate, 'type': 'CDS'} download_cds_data(payload) payload.update({'type':'CredIndex','version':4}) download_composite_data(payload)