scripts/total_tests_runs.py (21 lines of code) (raw):
import os
import yaml
config_dir = "tests/configs"
config_files = [f for f in os.listdir(config_dir) if not f.startswith("_")]
run_counts = {}
for config_file in config_files:
with open(os.path.join(config_dir, config_file), "r") as f:
config = yaml.safe_load(f)
for default in config.get("defaults", []):
if isinstance(default, str) and default != "_self_":
with open(os.path.join(config_dir, f"{default}.yaml"), "r") as f:
default_config = yaml.safe_load(f)
params = default_config.get("hydra", {}).get("sweeper", {}).get("params", {})
if len(params) == 0:
run_counts[config_file] = run_counts.get(config_file, 1)
else:
for param_values in params.values():
run_counts[config_file] = run_counts.get(config_file, 1) * len(param_values.split(","))
for config_file, run_count in run_counts.items():
print(f"{config_file}: {run_count} runs")
print(f"Total runs: {sum(run_counts.values())}")