def solution(index): args = flask.request.args params = build_parameters(args, **SOLUTION_PARAMETERS[index - 1]) error = validate_parameters(params) events = [] if not error: events = event_counter.get_events(**filter_query_type(params)) # Solution 2 uses clusters instead of events for data if index == 2: # try: k = int(args.get('k', 10) or 10) events = cluster_detection.get_k_clusters(events, k, limit=1000) params['k'] = k # except ValueError: # error = "Number of clusters must be an integer" # print error # Load template for solution try: return flask.render_template( 'solution%d.html' % index, events=events, params=params, error=error, index=index) except jinja2.exceptions.TemplateNotFound: return flask.abort(404)
#!/usr/bin/env python import os import sys sys.path.append(os.path.dirname(os.path.dirname(__file__))) from program import cluster_detection from program import event_counter if __name__ == '__main__': events = [ event_counter.Event(2000, 20, 30, 5, 5), event_counter.Event(2000, 30, 90, 5, 9), event_counter.Event(2002, 20, 30, 5, 5), event_counter.Event(1940, 12, 11, 5, 5), event_counter.Event(1945, 14, 18, 6, 5), ] print cluster_detection.get_k_clusters(events, 2)