def save_trace(contest_name, trace_name, node, flight): delete_trace(contest_name, trace_name, flight) if 'turnpoints' not in node: return locations = [] times = [] for turnpoint in node['turnpoints']: location = read_location(turnpoint['location']) time = read_time_of_day(turnpoint, flight) if location is None or time is None: continue locations.append(location) times.append(time) if len(locations) < 2 or len(times) < 2: return trace = Trace() trace.contest_type = contest_name trace.trace_type = trace_name trace.locations = locations trace.times = times if 'duration' in node: trace.duration = datetime.timedelta(seconds=int(node['duration'])) if 'distance' in node: trace.distance = int(node['distance']) flight.traces.append(trace)
def save_trace(contest_name, trace_name, node, flight): delete_trace(contest_name, trace_name, flight) if 'turnpoints' not in node: return locations = [] times = [] for turnpoint in node['turnpoints']: location = read_location(turnpoint) time = read_time_of_day(turnpoint, flight) if location is None or time is None: continue locations.append(location) times.append(time) if len(locations) < 2 or len(times) < 2: return trace = Trace() trace.contest_type = contest_name trace.trace_type = trace_name trace.locations = locations trace.times = times if 'duration' in node: trace.duration = datetime.timedelta(seconds=int(node['duration'])) if 'distance' in node: trace.distance = int(node['distance']) flight.traces.append(trace)
def olc_classic(flight, **kwargs): return Trace( flight=flight, contest_type="olc_plus", trace_type="classic", distance=725123, duration=timedelta(hours=6.53), times=[ datetime(2016, 8, 17, 9, 53, 22), datetime(2016, 8, 17, 11, 32, 29), datetime(2016, 8, 17, 14, 2, 54), datetime(2016, 8, 17, 16, 43, 43), ], locations=[ Location(51.3, 7.1), Location(51.6, 9.3), Location(50.2, 5.8), Location(51.3, 7.1), ], ).apply_kwargs(kwargs)
def delete_trace(contest_name, trace_name, flight): q = Trace.query( flight=flight, contest_type=contest_name, trace_type=trace_name) q.delete()
def delete_trace(contest_name, trace_name, flight): q = Trace.query(flight=flight, contest_type=contest_name, trace_type=trace_name) q.delete()