diff options
Diffstat (limited to 'python/collateral')
| -rw-r--r-- | python/collateral/__main__.py | 1 | ||||
| -rw-r--r-- | python/collateral/jpm.py | 35 |
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) |
