44docs/superpowers/specs/2026-05-29-coverage-test-selection-design.md.
55"""
66
7+ import datetime
8+ import gzip
79import hashlib
810import json
11+ from pathlib import Path
12+ from typing import Optional , Tuple
913
1014
1115def param_hash (params : dict ) -> str :
@@ -16,3 +20,34 @@ def param_hash(params: dict) -> str:
1620 """
1721 canonical = json .dumps (params , sort_keys = True , separators = ("," , ":" ), default = str )
1822 return hashlib .sha256 (canonical .encode ("utf-8" )).hexdigest ()[:16 ]
23+
24+
25+ COVERAGE_MAP_PATH = Path ("tests/coverage_map.json.gz" )
26+
27+
28+ def save_map (path : Path , entries : dict , * , n_tests : int , git_sha : str , gfortran_version : str ) -> None :
29+ payload = dict (entries )
30+ payload ["_meta" ] = {
31+ "built_at" : datetime .datetime .now (datetime .timezone .utc ).isoformat (),
32+ "git_sha" : git_sha ,
33+ "gfortran_version" : gfortran_version ,
34+ "n_tests" : n_tests ,
35+ }
36+ path .parent .mkdir (parents = True , exist_ok = True )
37+ with gzip .open (path , "wt" , encoding = "utf-8" ) as f :
38+ json .dump (payload , f , indent = 2 , sort_keys = True )
39+
40+
41+ def load_map (path : Path ) -> Tuple [Optional [dict ], Optional [dict ]]:
42+ """Return (entries_without_meta, meta), or (None, None) if missing/corrupt."""
43+ if not Path (path ).exists ():
44+ return None , None
45+ try :
46+ with gzip .open (path , "rt" , encoding = "utf-8" ) as f :
47+ data = json .load (f )
48+ except (OSError , gzip .BadGzipFile , json .JSONDecodeError , UnicodeDecodeError ):
49+ return None , None
50+ if not isinstance (data , dict ) or "_meta" not in data :
51+ return None , None
52+ meta = data .pop ("_meta" )
53+ return data , meta
0 commit comments