|
- 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()
|