import pandas as pd,numpy as np,json B='/workspace/research/flow-forensics-2026-10/data' SESS=['2026-10-12','2026-10-13','2026-10-14','2026-10-15','2026-10-16','2026-10-19','2026-10-21','2026-10-22','2026-10-23'] keys=json.load(open(f'{B}/keys.json')); STK=[k for k in keys if k not in('NIFTY','BANKNIFTY','NIFTYFUT','BANKNIFTYFUT','NIFTYFUT_NOV','INDIAVIX')] def m1(s,clean=True): d=pd.read_csv(f'{B}/1m/{s}_1m.csv'); d['ts']=pd.to_datetime(d.ts.str[:19]); d['date']=d.ts.dt.strftime('%Y-%m-%d'); d['hm']=d.ts.dt.strftime('%H:%M') if clean and not s.endswith('FUT') and s!='NIFTYFUT_NOV': # NSE closing auction (since 2026-08-03): spot/cash 15:15-15:29 frozen -> treated as missing d.loc[d.hm>='15:15',['open','high','low','close','volume']]=np.nan return d def day(s): d=pd.read_csv(f'{B}/1m/{s}_day.csv'); d['date']=d.ts.str[:10]; return d.sort_values('date').set_index('date')