aboutsummaryrefslogtreecommitdiffstats
path: root/python/quote_parsing/parse_emails.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/quote_parsing/parse_emails.py')
-rw-r--r--python/quote_parsing/parse_emails.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/python/quote_parsing/parse_emails.py b/python/quote_parsing/parse_emails.py
index e090c328..f3fc2e21 100644
--- a/python/quote_parsing/parse_emails.py
+++ b/python/quote_parsing/parse_emails.py
@@ -23,7 +23,7 @@ def list_imm_dates(date):
def makedf(r, indextype, quote_source):
- if indextype in ["IG", "EU", "XO"]:
+ if indextype in ["IG", "EU", "XO", "EUFS"]:
cols = [
"strike",
"rec_bid",
@@ -614,7 +614,9 @@ def parse_cs(fh, index_desc):
fh, index_desc["index"]
)
else:
- logger.error("Can't parse expiry line: %s for filename: %s", line, fh.name)
+ logger.error(
+ "Can't parse expiry line: %s for filename: %s", line, fh.name
+ )
return option_stack, fwd_index
@@ -650,7 +652,7 @@ def parse_bnp(fh, index_desc):
def parse_jpm(fh, index_desc):
option_stack = {}
fwd_index = []
- regex = r"JPM (CDX|iTrx) Options: (HY|IG|MAIN|XOVER) \(\w\d+V(?P<version>\d+)\) (?P<expiry>[\d]+-[\w]+-[\d]+) \*\* Fwd @(?P<fwdref>[\d.]+)"
+ regex = r"JPM (CDX|iTrx) Options: (HY|IG|MAIN|XOVER|FINSEN) \(\w\d+V(?P<version>\d+)\) (?P<expiry>[\d]+-[\w]+-[\d]+) \*\* Fwd @(?P<fwdref>[\d.]+)"
pat = re.compile(regex)
line = next(fh).strip()
while True:
@@ -672,7 +674,9 @@ def parse_jpm(fh, index_desc):
logger.error(f"Something is wrong with file {Path(fh.name).stem}")
raise RuntimeError()
else:
- logger.error("Can't parse expiry line: %s for filename: %s", line, fh.name)
+ logger.error(
+ "Can't parse expiry line: %s for filename: %s", line, fh.name
+ )
elif line.startswith("Payer"):
break
else:
@@ -780,10 +784,10 @@ regex_dict = {
): ("CS", parse_cs),
re.compile(r"CDX OPTIONS RUN: (IG|HY)(\d{2}).*"): ("BNP", parse_bnp),
re.compile(
- r"JPM (?:CDX|iTrx) Options: (?:CDX|ITRAXX).(IG|HY|XOVER|MAIN) S(\d+) 5Y (?:V2&V1 )?\S+-\S+ \[ref ([\d.]*)\]"
+ r"JPM (?:CDX|iTrx) Options: (?:CDX|ITRAXX).(IG|HY|XOVER|MAIN|FINSEN) S(\d+) 5Y (?:V2&V1 )?\S+(?:-\S+)? \[ref ([\d.]*)\]"
): ("JPM", parse_jpm),
re.compile(
- r"GS Options - iTraxx ([A-Za-z]+)(\d+) 5Y V(\d+) Options Run - Ref ([\d.]+)"
+ r"GS Options - iTraxx (Xover|Main|FinSen)(\d+) 5Y V(\d+) Options Run - Ref ([\d.]+)"
): ("GS", parse_gs_eu),
}
@@ -818,6 +822,7 @@ def parse_email(email: Path, date_received: datetime.date, conn):
indextype = "EU" if indextype.upper() in ("MAIN", "MA") else indextype
indextype = "XO" if indextype.upper() == "XOVER" else indextype
+ indextype = "EUFS" if indextype.upper() == "FINSEN" else indextype
series = int(series)
cur_pos = fh.tell()