示例#1
0
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)
#!/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)