import ast,hashlib,json
from pathlib import Path
r=Path(__file__).resolve().parent.parent;p=r/'Contextra_Fall_Review_28_20261101'
manifest=json.loads((p/'sha256_manifest.json').read_text());total=0
for name,digest in manifest.items():
 f=p/name;h=hashlib.sha256()
 with f.open('rb') as stream:
  for b in iter(lambda:stream.read(1024*1024),b''):h.update(b);total+=len(b)
 assert h.hexdigest()==digest,name
assert len(list(p.rglob('Fall_Spatial_Review.mp4')))==28
for f in (r/'helpers').glob('*.py'):ast.parse(f.read_text())
result=dict(status='PASS',files=len(manifest),bytes=total,videos=28)
(r/'reports/transfer_validation.json').write_text(json.dumps(result,indent=2));print(json.dumps(result))
