| 164 | |
| 165 | |
| 166 | def create_eval_environment(scenario_id): |
| 167 | safe_id = re.sub(r"[^A-Za-z0-9_.-]+", "-", scenario_id) |
| 168 | temp_dir = tempfile.TemporaryDirectory(prefix=f"tracedecay-eval-env-{safe_id}-") |
| 169 | root = Path(temp_dir.name) |
| 170 | home = root / "home" |
| 171 | data_dir = root / ".tracedecay" |
| 172 | global_db = data_dir / "global.db" |
| 173 | home.mkdir(parents=True, exist_ok=True) |
| 174 | data_dir.mkdir(parents=True, exist_ok=True) |
| 175 | |
| 176 | env = dict(os.environ) |
| 177 | env["HOME"] = str(home) |
| 178 | env["USERPROFILE"] = str(home) |
| 179 | env["XDG_CONFIG_HOME"] = str(home / ".config") |
| 180 | env["TRACEDECAY_DATA_DIR"] = str(data_dir) |
| 181 | env["TRACEDECAY_GLOBAL_DB"] = str(global_db) |
| 182 | return EvalEnvironment( |
| 183 | root=root, |
| 184 | home=home, |
| 185 | data_dir=data_dir, |
| 186 | global_db=global_db, |
| 187 | env=env, |
| 188 | _temp_dir=temp_dir, |
| 189 | ) |
| 190 | |
| 191 | |
| 192 | def resolve_hermes_profile(args): |