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