aboutsummaryrefslogtreecommitdiffstats
path: root/python/parse_gs_exchange.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/parse_gs_exchange.py')
-rw-r--r--python/parse_gs_exchange.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/python/parse_gs_exchange.py b/python/parse_gs_exchange.py
index 2fec4a4a..9150f273 100644
--- a/python/parse_gs_exchange.py
+++ b/python/parse_gs_exchange.py
@@ -12,20 +12,17 @@ class ParseError(Exception):
def parse_email(email, fwd_index):
- m = re.search("(IG|HY)(\d{2}) 5y (?:.*)SWAPTION (?:UPDATE|CLOSES|CLOSE) - Ref\D+([\d.]+)\D*$",
+ m = re.search("(IG|HY)(\d{2}) 5y (?:.*)SWAPTION (?:UPDATE|CLOSES|CLOSE) - Ref\D+([\d.]+)(?:[^(]+\(([\d.]+)\))?",
email.subject)
if m:
- indextype, series, ref = m.groups()
+ indextype, series, ref, refspread = m.groups()
series = int(series)
- if indextype == 'HY':
- refprice, refspread = map(float,
- re.match(r"([\S]+)\s+\(([^)]+)\)", ref).
- groups())
- else:
- try:
- refspread = float(ref)
- except ValueError as e:
- raise ParseError(str(e))
+ if indextype == 'IG':
+ refspread = ref
+ try:
+ refspread = float(ref)
+ except ValueError as e:
+ raise ParseError(str(e))
else:
raise ParseError(f"can't parse subject line: {email.subject}")
@@ -74,7 +71,7 @@ def parse_email(email, fwd_index):
'expiry': date,
'index': indextype,
'series': series,
- 'ref': refspread if indextype == "IG" else refprice}
+ 'ref': refspread if indextype == "IG" else ref}
if indextype == "IG":
d['fwdspread'] = float(fwspread)
else: