aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/ack_checker.py36
-rw-r--r--python/position_file_bowdst.py9
2 files changed, 26 insertions, 19 deletions
diff --git a/python/ack_checker.py b/python/ack_checker.py
index 7bb6c878..4844fa72 100644
--- a/python/ack_checker.py
+++ b/python/ack_checker.py
@@ -3,24 +3,40 @@ import datetime
import re
from csv import reader
from io import BytesIO
-from serenitas.utils.remote import FtpClient
+from serenitas.utils.remote import SftpClient, FtpClient
from serenitas.utils.db import dbconn
-def ack_check(date: datetime.date, conn):
+def serenitas_files(date):
ftp = FtpClient.from_creds("globeop")
ftp.client.cwd("outgoing")
- files = [
- f for f in ftp.client.nlst() if f.startswith(f"Serenitas.ALL.{date:%Y%m%d}")
- ]
+ for f in ftp.client.nlst():
+ if f.startswith(f"Serenitas.ALL.{date:%Y%m%d}"):
+ buf = BytesIO()
+ ftp.client.retrbinary("RETR " + f, buf.write)
+ buf.seek(0)
+ yield codecs.iterdecode(buf, "utf-8")
+
+
+def bowdst_files(date):
+ sftp = SftpClient.from_creds("hm_globeop")
+ sftp.client.chdir("outgoing")
+ for f in sftp.client.listdir():
+ if f.startswith(f"Bowdst.ALL.{date:%Y%m%d}"):
+ yield sftp.client.open(f)
+
+
+def ack_check(date: datetime.date, conn):
+ files = list(serenitas_files(date)) + list(bowdst_files(date))
for f in files:
- buf = BytesIO()
- ftp.client.retrbinary("RETR " + f, buf.write)
- buf.seek(0)
- csv = reader(codecs.iterdecode(buf, "utf-8"))
+ csv = reader(f)
for serenitas_id, action, dealtype, result, globeop_id, _, _ in csv:
if action == "NEW" and result == "Loaded":
- globeop_id = int(globeop_id)
+ # BOWDST globeop uses dealid with colon
+ try:
+ globeop_id = int(globeop_id)
+ except ValueError:
+ globeop_id = int(globeop_id.split()[1])
if m := re.match("[^0-9]*([0-9]*)", serenitas_id):
serenitas_id = int(m.groups()[0])
if dealtype == "CreditDefaultSwapDeal":
diff --git a/python/position_file_bowdst.py b/python/position_file_bowdst.py
index 738d653d..32adf6d6 100644
--- a/python/position_file_bowdst.py
+++ b/python/position_file_bowdst.py
@@ -27,14 +27,6 @@ def build_line(obj, asset_type):
return [obj.get(h, None) for h in HEADERS[asset_type]]
-# variables
-
-date = datetime.date(2021, 10, 29)
-
-
-dawndb = dbconn("dawndb")
-
-
HEADERS = {
"bond": [
"AccountNumber",
@@ -304,7 +296,6 @@ def positions_otc(positions, conn, date):
)
positions["otc"].append(obj)
- # process_upload(otc_trades, "otc")
if __name__ == "__main__":