|
- 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()
|