aboutsummaryrefslogtreecommitdiffstats
path: root/python/quote_parsing
diff options
context:
space:
mode:
Diffstat (limited to 'python/quote_parsing')
-rw-r--r--python/quote_parsing/parse_emails.py38
1 files changed, 7 insertions, 31 deletions
diff --git a/python/quote_parsing/parse_emails.py b/python/quote_parsing/parse_emails.py
index ebda3101..eee0f2ef 100644
--- a/python/quote_parsing/parse_emails.py
+++ b/python/quote_parsing/parse_emails.py
@@ -641,10 +641,10 @@ def parse_jpm(fh, index_desc):
option_stack = {}
fwd_index = []
regex = {
- "HY": r"JPM CDX Options: HY [(]([\w\d]*)[)] (?P<expiry>[\d]+-[\w]+-[\d]+) [*]{2} Fwd @(?P<fwdprice>[\d.]+), Delta @([\d]+)",
- "IG": r"JPM CDX Options: IG [(]([\w\d]*)[)] (?P<expiry>[\d]+-[\w]+-[\d]+) [*]{2} Fwd @(?P<fwdspread>[\d.]+), Delta @([\d]+)",
- "EU": r"JPM iTrx Options: MAIN \(S34V1\) (?P<expiry>[\d]+-[\w]+-[\d]+) [*]{2} Fwd @(?P<fwdprice>[\d.]+), Delta @([\d]+)",
- "XO": r"JPM iTrx Options: XOVER \(S34V\d\) (?P<expiry>[\d]+-[\w]+-[\d]+) [*]{2} Fwd @(?P<fwdspread>[\d.]+), Delta @([\d]+)",
+ "HY": r"JPM CDX Options: HY \(([\w\d]*)\) (?P<expiry>[\d]+-[\w]+-[\d]+) \*\* Fwd @(?P<fwdprice>[\d.]+), Delta @([\d.]+)",
+ "IG": r"JPM CDX Options: IG \(([\w\d]*)\) (?P<expiry>[\d]+-[\w]+-[\d]+) \*\* Fwd @(?P<fwdspread>[\d.]+), Delta @([\d.]+)",
+ "EU": r"JPM iTrx Options: MAIN \(S34V1\) (?P<expiry>[\d]+-[\w]+-[\d]+) \*\* Fwd @(?P<fwdprice>[\d.]+), Delta @([\d.]+)",
+ "XO": r"JPM iTrx Options: XOVER \(S34V\d\) (?P<expiry>[\d]+-[\w]+-[\d]+) \*\* Fwd @(?P<fwdspread>[\d.]+), Delta @([\d.]+)",
}
pat = re.compile(regex[index_desc["index"]])
line = next(fh).strip()
@@ -689,18 +689,7 @@ subject_cs = re.compile(
)
subject_bnp = re.compile(r"CDX OPTIONS RUN: (IG|HY)(\d{2}).*")
subject_jpm = re.compile(
- r"JPM CDX Options: CDX.([\w]+) S(\d+) \d\w \S+-\S+ \[ref ([\d.]*).*"
-)
-eu_subject_baml = re.compile("")
-eu_subject_gs = re.compile("")
-eu_subject_ms = re.compile("")
-eu_subject_nom = re.compile("")
-eu_subject_sg = re.compile("")
-eu_subject_citi = re.compile("")
-eu_subject_cs = re.compile("")
-eu_subject_bnp = re.compile("")
-eu_subject_jpm = re.compile(
- r"JPM iTrx Options: ITRAXX.(\w+) S(\d+) 5Y (?:V2&V1 )?\S+-\S+ \[ref ([\d.]*)\].*"
+ r"JPM (?:CDX|iTrx) Options: (?:CDX|ITRAXX).(IG|HY|XOVER|MAIN) S(\d+) 5Y (?:V2&V1 )?\S+-\S+ \[ref ([\d.]*)\].*"
)
@@ -720,21 +709,8 @@ def parse_email(email: Path, date_received: datetime.date, conn):
with email.open("rt") as fh:
subject = fh.readline().lstrip()
- for source in [
- "JPM",
- "BAML",
- "GS",
- "MS",
- "NOM",
- "SG",
- "CITI",
- "CS",
- "BNP",
- "JPM",
- ]:
- if (m := globals()[f"subject_{source.lower()}"].match(subject)) or (
- m := globals()[f"eu_subject_{source.lower()}"].match(subject)
- ):
+ for source in ["BAML", "GS", "MS", "NOM", "SG", "CITI", "CS", "BNP", "JPM"]:
+ if (m := globals()[f"subject_{source.lower()}"].match(subject)) :
version = None
if source in ["CITI", "BNP"]:
indextype, series = m.groups()