|
- 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]
-
- def to_dict(self) -> dict:
- return {
- "slug": self.slug,
- "name": self.name,
- "circuits": {k: v.to_dict() for k, v in self.circuits.items()},
- }
-
- @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()
|