Add all local circuit work — year-by-year SVGs and tooling
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user