def team_evaluation(state):
    """
    Prints the best state.teams based on ranking algorithm

    :param state: current state of variables
    :return: prints state.teams and statistics
    """

    return Helper.evaluate_teams(state.teams, state.normalized_player_statistics[state.iteration], state)
def waiver(state):
    """
    Recommends players to pick up off the waiver

    :param state: current state of variables
    :return:
    """

    # Initialize variables
    swap_dictionary = defaultdict(lambda: defaultdict(int))
    players = state.cumulative_player_statistics[state.iteration].keys()
    team_stat = Helper.evaluate_teams(copy.deepcopy(state.teams), state.normalized_player_statistics[state.iteration], state)
    print team_stat

    """
    for player in players:

        # Only iterates through players on waiver wire
        # TODO: Replace with SQL query
        if player not in state.taken_players and player not in state.players_on_team:

            # Loops over all players on team
            for other_player in state.players_on_team:
                change_stat = copy.deepcopy(team_stat)
    """

#     """
    for player in players:

        # Prints other players
        if player not in state.taken_players and player not in state.players_on_team:

            # Determines the best player to drop and add
            for other_player in state.players_on_team:
                new_change = sum(Helper.evaluate_player_swap(copy.deepcopy(state.teams), other_player, player,
                                                             state.normalized_player_statistics[state.iteration],
                                                             state)[0].values())
                swap_dictionary[other_player][player] = new_change
#     """

    return swap_dictionary