"""Read-only status summary; no imports of GPU or simulator libraries.""" import json import time from common import ROOT, VARIANTS, conditions def main(): for name in ['status.json','capture_progress.json','sampling_progress.json','analysis_progress.json']: path=ROOT/name if path.exists(): data=json.loads(path.read_text()) print(name, json.dumps(data,ensure_ascii=False),f'age={time.time()-data["time"]:.0f}s') total=0 for v in VARIANTS: done=sum((ROOT/'samples'/v/f'{c}.json').exists() for c in conditions()) total+=done*512 print(v,f'{done}/20 conditions complete ({done*512}/10240 samples committed)') p=ROOT/'sampling_progress.json' if p.exists(): d=json.loads(p.read_text());remaining=max(0,30720-total) print(f'Committed total: {total}/30720; approximate sampling time left (excludes plotting/loading): {remaining*d["median_seconds"]/60:.1f} minutes') if __name__=='__main__':main()