from dataclasses import dataclass from typing import TYPE_CHECKING from .circuit import Circuit if TYPE_CHECKING: from .country import Country @dataclass class Locality: slug: str name: str country: 'Country' circuits: dict[str, Circuit] @classmethod def from_dict(cls, country: 'Country', slug: str, data: dict): locality = cls( slug=slug, name=data["name"], country=country, circuits={} ) locality.circuits = {circuit_slug: Circuit.from_dict(locality, circuit_slug, circuit_data) for circuit_slug, circuit_data in data["circuits"].items()} return locality def load_geo_json_data(self): """Load data for all circuits""" for circuit in self.circuits.values(): circuit.load_geo_json_data()