F1 circuit layouts with year-by-year SVGs — manually traced track variations
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

39 рядки
1006B

  1. from dataclasses import dataclass
  2. from typing import TYPE_CHECKING
  3. from .track_layout import TrackLayout
  4. if TYPE_CHECKING:
  5. from .locality import Locality
  6. @dataclass
  7. class URLs:
  8. wikipedia: str
  9. fandom: str
  10. @dataclass
  11. class Circuit:
  12. slug: str
  13. name: str
  14. urls: URLs
  15. locality: 'Locality'
  16. layouts: dict[str, TrackLayout]
  17. @classmethod
  18. def from_dict(cls, locality: 'Locality', slug: str, data: dict) -> 'Circuit':
  19. circuit = cls(
  20. slug=slug,
  21. name=data["name"],
  22. urls=URLs(**data["urls"]),
  23. locality=locality,
  24. layouts={}
  25. )
  26. circuit.layouts = {layout_slug: TrackLayout.from_dict(circuit, layout_slug, layout_data) for
  27. layout_slug, layout_data in data["layouts"].items()}
  28. return circuit
  29. def load_geo_json_data(self):
  30. """Load data for all layouts"""
  31. for track_layout in self.layouts.values():
  32. track_layout.load_geo_json_data()