aboutsummaryrefslogtreecommitdiffstats
path: root/python/ack_checker.py
blob: 4b8ac068fe1c9b4d18c037a25463507689c38298 (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
import codecs
import datetime
from csv import reader
from io import BytesIO
from remote import FtpClient
from utils.db import dbconn

dawndb = dbconn("dawndb")
ftp = FtpClient.from_creds("globeop")
ftp.client.cwd("outgoing")
date = datetime.date.today()
files = [f for f in ftp.client.nlst() if f.startswith(f"Serenitas.ALL.{date:%Y%m%d}")]
for f in files:
    if "CreditDefaultSwapDeal" in f:
        buf = BytesIO()
        ftp.client.retrbinary("RETR " + f, buf.write)
        buf.seek(0)
        csv = reader(codecs.iterdecode(buf, "utf-8"))
        for serenitas_id, action, dealtype, result, globeop_id, _, _ in csv:
            if dealtype != "CreditDefaultSwapDeal":
                continue

            with dawndb.cursor() as c:
                c.execute(
                    "SELECT orig_attach FROM cds WHERE dealid=%s", (serenitas_id,)
                )
                (attach,) = c.fetchone()
                if attach is None:
                    continue
            if action == "NEW" and result == "Loaded":
                globeop_id = int(globeop_id)
                serenitas_id = int(serenitas_id[5:])
                with dawndb.cursor() as c:
                    c.execute(
                        "INSERT INTO id_mapping VALUES(%s, %s, %s, %s)",
                        (date, "CDS", serenitas_id, globeop_id),
                    )
dawndb.commit()