aboutsummaryrefslogtreecommitdiffstats
path: root/python/collateral
diff options
context:
space:
mode:
Diffstat (limited to 'python/collateral')
-rw-r--r--python/collateral/__main__.py1
-rw-r--r--python/collateral/jpm.py35
2 files changed, 36 insertions, 0 deletions
diff --git a/python/collateral/__main__.py b/python/collateral/__main__.py
index 0d198824..fcbc3fdf 100644
--- a/python/collateral/__main__.py
+++ b/python/collateral/__main__.py
@@ -40,6 +40,7 @@ counterparties = (
"wells",
"cs",
"gs_fcm",
+ "jpm",
)
if args.download:
em = ExchangeMessage()
diff --git a/python/collateral/jpm.py b/python/collateral/jpm.py
new file mode 100644
index 00000000..1d15df6a
--- /dev/null
+++ b/python/collateral/jpm.py
@@ -0,0 +1,35 @@
+import pandas as pd
+from io import BytesIO
+from pikepdf import Pdf
+from . import DAILY_DIR
+
+
+def load_file(d, fund):
+ try:
+ fname = next(
+ (DAILY_DIR / fund / "JPM_reports").glob(f"CSCFTCSTMT-*-{d:%y%m%d}*.pdf")
+ )
+ except StopIteration:
+ raise FileNotFoundError(f"JPM file not found for date {d}")
+ return pd.read_excel(fname, skiprows=6, skipfooter=2)
+
+
+paths = {
+ # "Serenitas": ["NYops", "Margin Calls JPM"],
+ "BowdSt": ["BowdoinOps", "Margin JPM"],
+}
+
+
+def download_files(em, count=20, *, fund="BowdSt", **kwargs):
+ if fund not in paths:
+ return
+ emails = em.get_msgs(path=paths[fund], count=count, subject__startswith="909271")
+ DATA_DIR = DAILY_DIR / fund / "JPM_reports"
+ for msg in emails:
+ for attach in msg.attachments:
+ fname = attach.name
+ p = DATA_DIR / fname
+ if not p.exists():
+ stream = BytesIO(attach.content)
+ pdf = Pdf.open(stream, password="tm64EO")
+ pdf.save(p)