예제 #1
0
def load_circuit():
    """Loads a circuit from resources file, then loads all its progress via
    the previous sessions outputs.

    :return: the newly loaded circuit.
    """
    circuit = Circuit()

    load_tournament_types(circuit.tournament_types)
    load_ranking_points(circuit.ranking_points)
    load_circuit_players('men', circuit.men)
    load_circuit_players('women', circuit.women)
    circuit.men_scoreboard = load_circuit_player_scoreboard(circuit.men)
    circuit.women_scoreboard = load_circuit_player_scoreboard(circuit.women)

    circuit_progress_file = '%s/progress.csv' % OUTPUT

    if not os.path.isfile(circuit_progress_file):
        return circuit

    season = None

    with open(circuit_progress_file, 'r') as the_file:
        for line in the_file:
            csv = parse_csv_line(line)
            name = csv[0]
            complete = parse_bool(csv[1])

            previous = season

            men_stats = load_season_player_stats(name, 'men', circuit.men)
            women_stats = load_season_player_stats(name, 'women',
                                                   circuit.women)
            men_scoreboard = load_season_player_scoreboard(men_stats)
            women_scoreboard = load_season_player_scoreboard(women_stats)

            season = Season(circuit, previous, name, complete, men_stats,
                            women_stats, men_scoreboard, women_scoreboard)
            season.tournaments = load_tournaments(season)
            circuit.seasons.insert(name, season)
            circuit.ordered_seasons.append(season)
            circuit.current_season = season

    return circuit