F1 circuit layouts with year-by-year SVGs — manually traced track variations
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

30 líneas
926B

  1. from dataclasses import dataclass
  2. from typing import Optional, Dict, Any, TYPE_CHECKING
  3. if TYPE_CHECKING:
  4. from models.circuit import Circuit
  5. @dataclass
  6. class GeoJSONProperties:
  7. id: str
  8. country: str
  9. locality: str
  10. circuit: str
  11. length: Optional[int] = None
  12. altitude: Optional[int] = None
  13. rotation: Optional[float] = None
  14. direction: Optional[str] = None
  15. fastest_laptime: Optional[float] = None
  16. @classmethod
  17. def from_dict(cls, circuit: 'Circuit', data: Dict[str, Any]) -> 'GeoJSONProperties':
  18. return cls(
  19. id=data.get("id"),
  20. country=circuit.locality.country.name,
  21. locality=circuit.locality.name,
  22. circuit=circuit.name,
  23. **{k: v for k, v in data.items() if
  24. k in cls.__annotations__ and k not in ['id', 'country', 'locality',
  25. 'circuit']}
  26. )