aboutsummaryrefslogtreecommitdiffstats
path: root/python/markit/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/markit/__main__.py')
-rw-r--r--python/markit/__main__.py81
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()