Add all local circuit work — year-by-year SVGs and tooling

This commit is contained in:
2026-03-25 22:17:47 +01:00
parent 6ceeba7fb9
commit c94ebcfb22
1149 changed files with 171650 additions and 421 deletions
+79
View File
@@ -0,0 +1,79 @@
import json
import shutil
from pathlib import Path
def load_json_file(file_path: str):
"""Load and parse a JSON file"""
with open(file_path, 'r', encoding='utf-8') as f:
return json.load(f)
def save_json_file(data, file_path: str):
"""Save data to a JSON file"""
with open(file_path, 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)
def clean_and_move_files(data):
"""Remove filePath and years properties, and move files to new locations"""
new_data = {}
for country, country_data in data.items():
country_slug = country_data['slug']
new_country_data = country_data.copy()
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():
# Get the old file path
old_file_path = None
if 'filePath' in layout_data:
old_file_path = layout_data['filePath']
del layout_data['filePath']
# Remove years property
if 'years' in layout_data:
del layout_data['years']
# Construct new path
layout_slug = layout_data['slug']
new_base_path = Path(f"{country_slug}/{city_slug}/{circuit_slug}")
# Create directory if it doesn't exist
new_base_path.mkdir(parents=True, exist_ok=True)
# Move files if they exist
if old_file_path:
for ext in ['.svg', '.png', '.geo.json']:
old_file = Path(f"{old_file_path}{ext}")
new_file = new_base_path / f"{layout_slug}{ext}"
if old_file.exists():
print(f"Moving {old_file} to {new_file}")
shutil.move(old_file, new_file)
else:
print(f"File not found: {old_file}")
new_data[country] = new_country_data
return new_data
def main():
# Load the data
data = load_json_file("circuits.json")
# Clean data and move files
print("Cleaning data and moving files...")
new_data = clean_and_move_files(data)
# Save the modified data
print("Saving modified data...")
save_json_file(new_data, "circuits.json")
print("Done!")
if __name__ == "__main__":
main()