Spaces:
Running
Running
| 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 | |