def get_ride(ride): """ Get ride from database or fetch from strava. """ try: return Ride.get(strava_id=ride) except Ride.DoesNotExist: return fetch_ride(ride)
def get_orphan_rides(club): for athlete in get_athletes(club): db_ids = set(r.strava_id for r in Ride.select(Ride.strava_id).where(Ride.athlete == athlete)) strava_ids = set(fetch_athlete_ride_ids(athlete)) for id in db_ids.difference(strava_ids): yield Ride.get(Ride.strava_id == id)