F1 circuit layouts with year-by-year SVGs — manually traced track variations
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

32 linhas
921B

  1. from dataclasses import dataclass
  2. from .locality import Locality
  3. @dataclass
  4. class Country:
  5. slug: str
  6. name: str
  7. localities: dict[str, Locality]
  8. def to_dict(self) -> dict:
  9. return {
  10. "slug": self.slug,
  11. "name": self.name,
  12. "localities": {k: v.to_dict() for k, v in self.localities.items()},
  13. }
  14. @classmethod
  15. def from_dict(cls, slug: str, data: dict):
  16. country = cls(
  17. slug=slug,
  18. name=data["name"],
  19. localities={}
  20. )
  21. country.localities = {locality_slug: Locality.from_dict(country, locality_slug, locality_data) for
  22. locality_slug, locality_data in data["localities"].items()}
  23. return country
  24. def load_geo_json_data(self):
  25. """Load data for all cities"""
  26. for locality in self.localities.values():
  27. locality.load_geo_json_data()