from typing import Optional, Sequence from simfile.types import Chart # Imperative version def get_hardest_chart(charts) -> Optional[Chart]: hardest_chart: Optional[Chart] = None hardest_meter: Optional[int] = None for chart in charts: # Remember to convert `meter` to an integer for comparisons meter = int(chart.meter or "1") if hardest_meter is None or meter > hardest_meter: hardest_chart = chart hardest_meter = meter return hardest_chart # One-liner version def get_hardest_chart(charts: Sequence[Chart]) -> Optional[Chart]: return max( charts, key=lambda chart: int(chart.meter or "1"), default=None, )