72 lines
2.4 KiB
Python
72 lines
2.4 KiB
Python
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() |