3737 resolve_s3_env ,
3838 validate_audit_receipt ,
3939 validate_manifest ,
40+ validate_semantic_audit_receipt_binding ,
4041 verify_inventory ,
4142 write_json_atomic ,
4243)
@@ -227,13 +228,14 @@ def _verify_downloaded_set(
227228 receipt_path = _receipt_path_for (dest , validated )
228229 if receipt_path .is_symlink () or not receipt_path .is_file ():
229230 raise SystemExit (f"audit receipt missing after download: { receipt_path } " )
231+ selected_keys = [
232+ str (item ["remote" ])[len (PARQUET_REMOTE_PREFIX ):]
233+ for item in validated ["selections" ]
234+ if str (item ["remote" ]).startswith (PARQUET_REMOTE_PREFIX )
235+ ]
230236 report = validate_audit_receipt (
231237 json .loads (receipt_path .read_text (encoding = "utf-8" )),
232- selected_keys = [
233- str (item ["remote" ])[len (PARQUET_REMOTE_PREFIX ):]
234- for item in validated ["selections" ]
235- if str (item ["remote" ]).startswith (PARQUET_REMOTE_PREFIX )
236- ],
238+ selected_keys = selected_keys ,
237239 )
238240 audit_binding = validated ["audit_receipt" ]
239241 if (
@@ -242,11 +244,11 @@ def _verify_downloaded_set(
242244 != audit_binding ["sha256" ]
243245 ):
244246 raise SystemExit ("downloaded audit receipt SHA-256 does not match manifest" )
245- selected_keys = [
246- str ( item [ "remote" ])[ len ( PARQUET_REMOTE_PREFIX ):]
247- for item in validated [ "selections" ]
248- if str ( item [ "remote" ]). startswith ( PARQUET_REMOTE_PREFIX )
249- ]
247+ validate_semantic_audit_receipt_binding (
248+ validated [ "semantic_audit" ],
249+ report ,
250+ selected_keys = selected_keys ,
251+ )
250252 receipt_valid_tokens = sum (
251253 int (report ["by_kind_bucket" ][key ]["valid_tokens" ]) for key in selected_keys
252254 )
0 commit comments