|
- from dataclasses import dataclass
- from typing import Optional, Dict, Any, TYPE_CHECKING
- if TYPE_CHECKING:
- from models.circuit import Circuit
-
-
- @dataclass
- class GeoJSONProperties:
- id: str
- country: str
- locality: str
- circuit: str
- length: Optional[int] = None
- altitude: Optional[int] = None
- rotation: Optional[float] = None
- direction: Optional[str] = None
- fastest_laptime: Optional[float] = None
-
- @classmethod
- def from_dict(cls, circuit: 'Circuit', data: Dict[str, Any]) -> 'GeoJSONProperties':
- return cls(
- id=data.get("id"),
- country=circuit.locality.country.name,
- locality=circuit.locality.name,
- circuit=circuit.name,
- **{k: v for k, v in data.items() if
- k in cls.__annotations__ and k not in ['id', 'country', 'locality',
- 'circuit']}
- )
|