def main(): args = sys.argv print("Active countries with no delegates") out = no_delegates() print("Building page") build_results(out, args)
def main(): ev1 = "444bf" ev2 = "555bf" args = sys.argv out = compare_results(ev1, ev2) build_results(out, args)
def main(): args = sys.argv n = 0 try: n = int(args[1]) except: n = 1 # we assume n=1 stat = get_comp_with_n_days(n) build_results(stat, args)
def main(): """Usage: python3 most_common_missing_event.py n n is the number of missing events in a competition. Let's say n == 1, then we will look for competitions missing 1 event and we'll check the frequency of the missing event. """ args = sys.argv n = 0 try: n = int(args[1]) except: n = 1 # we assume n=1 stat = missing_event(n) args = sys.argv build_results(stat, args)
def main(): """Usage: python3 stat-3_days_competitions_with_few_events n """ args = sys.argv n = 0 try: n = int(args[1]) except: n = 3 # we assume n=1 build = False for x in args: if "=" in x: var, value = x.split("=") if var == "page" and value == "true": build = True stat = get_comp_with_n_days(n) build_results(stat, args)
def main(): out = get_far_comp() args = sys.argv build_results(out, args)
def main(): args = sys.argv stat = avg_letter() build_results(stat, args)
def main(): stat = avg_name_count() args = sys.argv build_results(stat, args)
def main(): args = sys.argv out = dnf_streak() build_results(out, args)
def main(): args = sys.argv stat = avg_competitions() build_results(stat, args)
def main(): args = sys.argv out = largest_range_fmc() build_results(out, args)
def main(): stat = common_id() args = sys.argv build_results(stat, args)
def main(): stat = avg_events() args = sys.argv build_results(stat, args)
def main(): print("Getting delegate list") delegates_list = get_delegates_list() delegates_id = [] delegates_name = [] delegates_country = [] delegates_last_competition_date = [] delegates_last_competition_name = [] day_diff = [] for delegate in delegates_list: wca_id = delegate["wca_id"] name = delegate["name"] country_id = delegate["country_iso2"] i = bisect_left(delegates_name, name) delegates_id.insert(i, wca_id) delegates_name.insert(i, name) delegates_country.insert(i, country_id) # Who cares with the position of None delegates_last_competition_date.append(None) delegates_last_competition_name.append(None) day_diff.append(float("inf")) today = datetime.date.today() competitions = pd.read_csv("WCA_export/WCA_export_Competitions.tsv", sep="\t") for index, row in competitions.iterrows(): competition, year, month, day, delegates = row[[ "id", "year", "month", "day", "wcaDelegate" ]] competition_date = datetime.date(year, month, day) if competition_date > today: continue delegates = extract_delegate(delegates) for delegate in delegates: i = bisect_left(delegates_name, delegate) if i < len(delegates_name) and delegates_name[i] == delegate: if delegates_last_competition_date[ i] == None or competition_date > delegates_last_competition_date[ i]: delegates_last_competition_date[i] = competition_date delegates_last_competition_name[i] = competition day_diff[i] = (today - competition_date).days out = {} out["title"] = "Last delegated competition in days" out["labels"] = [ "#", "Days", "Delegate", "Country", "Continent", "Last competition" ] table = [] prev = None pos = 1 for days, wca_id, name, country, competition in sorted( zip(day_diff, delegates_id, delegates_name, delegates_country, delegates_last_competition_name))[::-1]: p = pos if days == prev: p = "-" if days != float("inf"): table.append([ p, days, html_link_format(name, get_competitor_link(wca_id)), iso2_country_name(country), find_continent(iso2_country_name(country)), get_competition_html_link(competition) ]) pos += 1 prev = days out["table"] = table build_results(out, sys.argv)
def main(): args = sys.argv stat = biggest_names() build_results(stat, args)
def main(): args = sys.argv out = ratio_competitors_delegates() build_results(out, args)
def main(): delegates_list = get_delegates_list() delegates = list(map(delegate_json_2_delegate, delegates_list)) # Sort delegates by name delegates.sort(key=lambda x: x.name) # Ordered list of delegates names for binary search delegates_ordered_names = list(map(lambda x: x.name, delegates)) today = date.today() competitions = pd.read_csv("WCA_export/WCA_export_Competitions.tsv", sep="\t") for _, row in competitions.iterrows(): id, year, month, day, delegates_string, latitude, longitude, city, country = row[ [ "id", "year", "month", "day", "wcaDelegate", "latitude", "longitude", "cityName", "countryId" ]] competition_date = date(year, month, day) if (today - competition_date).days > 365 or competition_date > today: continue # we exclude multiple countries competition # XA, XE... if len(country) == 2: continue # ideally, we would also avoid multiple cities competition, but this is not that feasible right now competition = Competition() competition.id = id competition.location = (latitude, longitude) competition.date = competition_date competition_delegates = extract_delegate(delegates_string) for delegate in competition_delegates: index = bisect_left(delegates_ordered_names, delegate) # competition's delegate is no longer a delegate if index == len(delegates_ordered_names ) or delegates_ordered_names[index] != delegate: continue delegates[index].competition_list.append(competition) for delegate in delegates: # Sort competitions by date delegate.competition_list.sort() total_distance = 0 for j in range(1, len(delegate.competition_list)): if delegate.competition_list[j].date < delegate.competition_list[ j - 1].date: raise "Not sorted" distance = delegate.competition_list[j].distance( delegate.competition_list[j - 1]) total_distance += distance number_of_competitions = len(delegate.competition_list) # avoid / 0 delegate.avg = total_distance / max(1, number_of_competitions - 1) # Sort delegates by distance delegates.sort(key=lambda x: x.avg) out = {} out["title"] = "Average distance by delegates in the past 365 days" out["labels"] = [ "#", "Avg (km)", "Delegate", "Country", "Number of competitions" ] table = [] prev = None pos = 1 for delegate in delegates[::-1]: p = pos result = "%.2f" % delegate.avg if result == prev: p = "-" table.append([ p, result, html_link_format(delegate.name, delegate.url), delegate.country, len(delegate.competition_list) ]) pos += 1 prev = result out["table"] = table out["explanation"] = "The Avg column is the average distance a delegate traveled from one competition to the next." build_results(out, sys.argv)
def main(): args = sys.argv out = wen_points() build_results(out, args)
def main(): args = sys.argv out = most_dnf_ratio() build_results(out, args)
def main(): args = sys.argv out = sub30_fmc() build_results(out, args)