aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/collateral/barclays.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/python/collateral/barclays.py b/python/collateral/barclays.py
index 92ada007..a954a78d 100644
--- a/python/collateral/barclays.py
+++ b/python/collateral/barclays.py
@@ -1,5 +1,6 @@
import logging
import pandas as pd
+import PyPDF2
from . import DAILY_DIR
logger = logging.getLogger(__name__)
@@ -23,7 +24,23 @@ def load_file(d, fund, pattern):
)
except StopIteration:
raise FileNotFoundError(f"BARCLAYS file not found for date {d}")
- return pd.read_excel(fname, skiprows=3, skipfooter=23)
+ if fname.name.endswith("xls"):
+ return pd.read_excel(fname, skiprows=3, skipfooter=23)
+ else:
+ return fname
+
+
+def get_total_collateral(d, fund):
+ with open(load_file(d, fund, "CreditSupportStatement"), "rb") as pdf_file:
+ pdf_reader = PyPDF2.PdfFileReader(pdf_file)
+ first_page = pdf_reader.getPage(0)
+ page_text = first_page.extractText()
+ csb_pos = page_text.find("Credit Support Balance")
+ next_word_pos = page_text.find(" ", csb_pos + len("Credit Support Balance") + 1)
+ collateral_balance = page_text[
+ csb_pos + len("Credit Support Balance") + 1 : next_word_pos
+ ]
+ return float(collateral_balance.split("\n")[0])
def download_files(em, count=20, *, fund="Serenitas", **kwargs):
@@ -41,7 +58,7 @@ def download_files(em, count=20, *, fund="Serenitas", **kwargs):
def collateral(d, dawn_trades, *, fund="Serenitas", **kwargs):
- collateral = 0
+ collateral = get_total_collateral(d, fund)
df = load_file(d, fund, "Exposure Report")
df = df[["Trade Reference", "Exposure (USD)", "Ind Amt (USD)"]]
df["Trade Reference"] = df["Trade Reference"].astype(str)