import json from pathlib import Path from typing import Dict, List def load_json_file(file_path: str) -> dict: """Load and parse a JSON file""" with open(file_path, 'r', encoding='utf-8') as f: return json.load(f) def verify_files(data: dict) -> Dict[str, List[str]]: """Verify if all required files exist for each layout""" missing_files = {} for country, country_data in data.items(): country_slug = country_data['slug'] for city, city_data in country_data['cities'].items(): city_slug = city_data['slug'] for circuit_name, circuit_data in city_data['circuits'].items(): circuit_slug = circuit_data['slug'] if 'layouts' in circuit_data: for layout_years, layout_data in circuit_data['layouts'].items(): layout_slug = layout_data['slug'] # Construct expected path base_path = Path(f"{country_slug}/{city_slug}/{circuit_slug}") expected_files = [ base_path / f"{layout_slug}.svg", base_path / f"{layout_slug}.png", base_path / f"{layout_slug}.geo.json" ] # Check each expected file missing = [] for file_path in expected_files: if not file_path.exists(): missing.append(str(file_path)) if missing: key = f"{country}/{city}/{circuit_name}/{layout_years}" missing_files[key] = missing return missing_files def main(): # Load the data print("Loading circuits.json...") data = load_json_file("circuits.json") # Verify files print("Verifying files...") missing_files = verify_files(data) # Report results if missing_files: print("\nMissing files found:") total_missing = sum(len(files) for files in missing_files.values()) for layout, files in missing_files.items(): print(f"\n{layout}:") for file in files: print(f" - {file}") print(f"\nTotal missing files: {total_missing}") print(f"Affected layouts: {len(missing_files)}") else: print("\nAll files are present!") if __name__ == "__main__": main()