aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/markit_loans.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/python/markit_loans.py b/python/markit_loans.py
index f0e9d9a9..39d733bb 100644
--- a/python/markit_loans.py
+++ b/python/markit_loans.py
@@ -6,13 +6,17 @@ import datetime
import csv
import sys
import logging
+from psycopg2 import IntegrityError
-@with_connection('etdb')
-def download_facility(conn, workdate, payload):
+def download_facility(workdate, payload):
r = requests.get('https://loans.markit.com/loanx/LoanXFacilityUpdates.csv', params=payload)
facility_filename = os.path.join(root, "data", "Facility files", "facility_{0}.csv".format(workdate))
with open( facility_filename, "wb") as fh:
fh.write(r.content)
+
+@with_connection('etdb')
+def insert_facility(conn, workdate):
+ facility_filename = os.path.join(root, "data", "Facility files", "facility_{0}.csv".format(workdate))
sqlstring = "INSERT INTO markit_facility VALUES( {0} )".format( ",".join(["%s"] * 13))
with open( facility_filename, "r") as fh:
reader = csv.reader(fh)
@@ -23,8 +27,13 @@ def download_facility(conn, workdate, payload):
with conn.cursor() as c:
for line in reader:
newline = tuple([v or None for v in line])
- c.execute(sqlstring, newline)
- conn.commit()
+ try:
+ c.execute(sqlstring, newline)
+ except IntegrityError as e:
+ logging.error(e)
+ conn.rollback()
+ else:
+ conn.commit()
@with_connection('etdb')
def download_marks(conn, workdate, payload):
@@ -96,6 +105,7 @@ if __name__=="__main__":
'USERNAME': 'serecapuser',
'PASSWORD': 'Welcome1'}
download_facility(workdate, payload)
+ insert_facility(workdate)
payload.update({'EOD':'Y'})
download_marks(workdate, payload)
payload.pop('EOD')