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
+38
View File
@@ -0,0 +1,38 @@
from dataclasses import dataclass
from typing import TYPE_CHECKING
from .track_layout import TrackLayout
if TYPE_CHECKING:
from .locality import Locality
@dataclass
class URLs:
wikipedia: str
fandom: str
@dataclass
class Circuit:
slug: str
name: str
urls: URLs
locality: 'Locality'
layouts: dict[str, TrackLayout]
@classmethod
def from_dict(cls, locality: 'Locality', slug: str, data: dict) -> 'Circuit':
circuit = cls(
slug=slug,
name=data["name"],
urls=URLs(**data["urls"]),
locality=locality,
layouts={}
)
circuit.layouts = {layout_slug: TrackLayout.from_dict(circuit, layout_slug, layout_data) for
layout_slug, layout_data in data["layouts"].items()}
return circuit
def load_geo_json_data(self):
"""Load data for all layouts"""
for track_layout in self.layouts.values():
track_layout.load_geo_json_data()