aboutsummaryrefslogtreecommitdiffstats
path: root/python/markit/__main__.py
blob: a273860f69f0047de4e7ff18dea8e7443fc8f24d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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()