diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/quote_parsing/parse_emails.py | 17 |
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() |
