backend: initial commit

This commit is contained in:
Davide Scaini
2026-03-28 13:57:12 +01:00
commit 38c5423aeb
36 changed files with 2463 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
"""Sport name normalisation."""
_MAPPING: dict[str, str] = {
# cycling variants
"cycling": "cycling",
"biking": "cycling",
"bike": "cycling",
"road_biking": "cycling",
"mountain_biking": "cycling",
"gravel_cycling": "cycling",
"cyclocross": "cycling",
"indoor_cycling": "cycling",
"virtual_ride": "cycling",
"e-biking": "cycling",
# running
"running": "running",
"run": "running",
"trail_running": "running",
"treadmill_running": "running",
"virtual_run": "running",
# hiking
"hiking": "hiking",
"hike": "hiking",
# walking
"walking": "walking",
"walk": "walking",
# swimming
"swimming": "swimming",
"swim": "swimming",
"open_water_swimming": "swimming",
}
BAS_SPORTS = {"cycling", "running", "hiking", "walking", "swimming", "other"}
def normalise_sport(raw: object) -> str:
if raw is None:
return "other"
key = str(raw).lower().strip().replace(" ", "_")
return _MAPPING.get(key, "other")