import argparse import datetime import logging import os import pandas as pd import sys import logging import pdb from common import root from .cds import download_cds_data, download_composite_data from .import_quotes import insert_cds, insert_index, insert_tranche from pandas.tseries.offsets import BDay from sqlalchemy import create_engine from db import dbconn ## parse arguments parser = argparse.ArgumentParser() group = parser.add_mutually_exclusive_group(required=True) group.add_argument("-l", "--loans", action="store_true", help="download markit loan data") group.add_argument("-c", "--cds", action="store_true", help="download markit cds data") parser.add_argument('workdate', nargs='?', type = lambda s: pd.datetime.strptime(sys.argv[1], "%Y-%m-%d")), # , # default = pd.datetime.today() - BDay(1)) args = parser.parse_args() historical = True if args.loans: log_file = os.path.join(root, 'logs', 'markit_loans.log') if args.workdate is None: historical = False workdate = datetime.date.today() else: log_file = os.path.join(root, 'logs', 'markit_cds.log') if args.workdate is None: historical = False workdate = pd.datetime.today() - BDay(1) ## set up logging logger = logging.getLogger('markit') fh = logging.FileHandler(filename=log_file) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) logger.addHandler(fh) logger.setLevel(logging.INFO) if args.loans: workdate = str(workdate) payload={'LEGALENTITY': 'lmcg', 'USERNAME': 'serecapuser', 'PASSWORD': 'Welcome1'} download_facility(workdate, payload) logger.info('facility downloaded') insert_facility(workdate) logger.info('facility inserted') payload.update({'EOD':'Y'}) download_marks(workdate, payload) logger.info('marks downloaded') payload.pop('EOD') update_facility(workdate, payload) logger.info('facility updated') else: payload = {'user': 'GuillaumeHorel', 'password': 'password', 'version': '5', 'format': 'csv', 'report': 'FIXED_COUPON', 'date': workdate.strftime("%Y%m%d"), 'type': 'CDS'} download_cds_data(payload) payload.update({'type':'CredIndex','version':4}) download_composite_data(payload, historical) engine = create_engine('postgresql://serenitas_user@debian/serenitasdb') serenitasdb = dbconn('serenitasdb') insert_cds(serenitasdb, workdate.date()) insert_index(engine, workdate.date()) insert_tranche(engine, workdate.date()) serenitasdb.close()