#!/usr/bin/env python3 """Offline integrity check. Never loads or queries a model.""" import hashlib,json,pathlib,gzip root=pathlib.Path(__file__).resolve().parent checks=json.loads((root/'checksums.json').read_text()) for name,expected in checks.items(): assert hashlib.sha256((root/name).read_bytes()).hexdigest()==expected,name manifest=json.loads((root/'manifest.json').read_text()) requests=json.loads(gzip.decompress((root/manifest['requests_file']).read_bytes())) for case in manifest['cases']: result=json.loads(gzip.decompress((root/case['result']).read_bytes())) assert result.get('finished') and result['case']==case['configuration'],case['id'] for p in result.get('prefill',[]): assert 'prefill-'+str(p['target']) in requests print(f"OK: {len(checks)} files, {len(manifest['cases'])} reference cases, {len(requests)} frozen requests")