diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/parse_emails.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/python/parse_emails.py b/python/parse_emails.py index b7922435..0a31c58e 100644 --- a/python/parse_emails.py +++ b/python/parse_emails.py @@ -151,6 +151,8 @@ def parse_nomura_block(fh, indextype): r = [] for line in fh: line = line.rstrip() + if "EXPIRY" in line or line == "": + break if line == "": break strike, receiver, payer, vol, _ = line.split("|", 4) @@ -165,7 +167,9 @@ def parse_nomura_block(fh, indextype): if indextype == "HY": # we don't have price vol vals.append(None) r.append(vals) - return makedf(r, indextype, "NOM") + else: + return None, makedf(r, indextype, "NOM") + return line, makedf(r, indextype, "NOM") def parse_sg_block(fh, indextype, expiration_dates): r = [] @@ -236,12 +240,20 @@ def parse_ms(fh, indextype, *args): def parse_nomura(fh, indextype, *args): option_stack = {} + def aux(line, fh, indextype, option_stack): + expiry = line.split(" ")[0] + expiry = pd.to_datetime(expiry, format="%d-%b-%y") + next_line, df = parse_nomura_block(fh, indextype) + option_stack[expiry] = df + if next_line: + if "EXPIRY" in next_line: + aux(next_line, fh, indextype, option_stack) + else: + import pdb;pdb.set_trace() for line in fh: line = line.rstrip() if "EXPIRY" in line: - expiry = line.split(" ")[0] - expiry = pd.to_datetime(expiry, format="%d-%b-%y") - option_stack[expiry] = parse_nomura_block(fh, indextype) + aux(line, fh, indextype, option_stack) return option_stack def parse_sg(fh, indextype, expiration_dates): |
