diff options
Diffstat (limited to 'python/markit/__main__.py')
| -rw-r--r-- | python/markit/__main__.py | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/python/markit/__main__.py b/python/markit/__main__.py new file mode 100644 index 00000000..a273860f --- /dev/null +++ b/python/markit/__main__.py @@ -0,0 +1,81 @@ +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() |
