Skip to content

Commit 1a36374

Browse files
committed
MaD generator: really fix ordering problem
1 parent f7266c9 commit 1a36374

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

misc/scripts/models-as-data/bulk_generate_mad.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,6 @@ def generate_models(config, args, project: Project, database_dir: str) -> None:
236236
language = config["language"]
237237

238238
generator = mad.Generator(language)
239-
# Note: The argument parser converts with-sinks to with_sinks, etc.
240239
generator.generateSinks = should_generate_sinks(project)
241240
generator.generateSources = should_generate_sources(project)
242241
generator.generateSummaries = should_generate_summaries(project)
@@ -348,7 +347,7 @@ def download_dca_databases(
348347
"""
349348
print("\n=== Finding projects ===")
350349
project_map = {project["name"]: project for project in projects}
351-
analyzed_databases = {}
350+
analyzed_databases = {n: None for n in project_map}
352351
for experiment_name in experiment_names:
353352
response = get_json_from_github(
354353
f"https://raw.githubusercontent.com/github/codeql-dca-main/data/{experiment_name}/reports/downloads.json",
@@ -361,17 +360,24 @@ def download_dca_databases(
361360
artifact_name = analyzed_database["artifact_name"]
362361
pretty_name = pretty_name_from_artifact_name(artifact_name)
363362

364-
if not pretty_name in project_map:
363+
if not pretty_name in analyzed_databases:
365364
print(f"Skipping {pretty_name} as it is not in the list of projects")
366365
continue
367366

368-
if pretty_name in analyzed_databases:
367+
if analyzed_databases[pretty_name] is not None:
369368
print(
370369
f"Skipping previous database {analyzed_databases[pretty_name]['artifact_name']} for {pretty_name}"
371370
)
372371

373372
analyzed_databases[pretty_name] = analyzed_database
374373

374+
not_found = [name for name, db in analyzed_databases.items() if db is None]
375+
if not_found:
376+
print(
377+
f"ERROR: The following projects were not found in the DCA experiments: {', '.join(not_found)}"
378+
)
379+
sys.exit(1)
380+
375381
def download_and_decompress(analyzed_database: dict) -> str:
376382
artifact_name = analyzed_database["artifact_name"]
377383
repository = analyzed_database["repository"]

0 commit comments

Comments
 (0)