Add all local circuit work — year-by-year SVGs and tooling
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
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']}
|
||||
)
|
||||
Reference in New Issue
Block a user