from typing import Optional # src/tools/runner_ai.py # Convert seconds per kilometer to a min/km string def sec_to_min_km(sec_per_km) -> str: if sec_per_km is None: return None minutes = int(sec_per_km // 60) seconds = int(sec_per_km % 60) return f"{minutes}:{seconds:02d} min/km" # Convert a min/km string to seconds per kilometer def min_km_to_sec(min_km: str) -> float: if min_km is None: return None minutes, seconds = map(int, min_km.split(":")) return minutes * 60 + seconds # Convert a distance in meters and time in seconds to a pace in seconds per kilometer def calculate_pace_s_per_km(distance_m: Optional[float], time_s: Optional[float]) -> float: if not distance_m or not time_s or distance_m <= 0: return 0 return (time_s * 1000) / distance_m