コード例 #1
0
    def doOverallAwardInsights(self):
        """
        Calculate award insights across all years. Returns a list of Insights.
        """
        insights = []

        year_regional_winners = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.REGIONAL_DISTRICT_WINNERS], Insight.year != 0).fetch(1000)
        regional_winners = defaultdict(int)
        for insight in year_regional_winners:
            for number, team_list in insight.data:
                for team in team_list:
                    regional_winners[team] += number

        year_blue_banners = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.BLUE_BANNERS], Insight.year != 0).fetch(1000)
        blue_banners = defaultdict(int)
        for insight in year_blue_banners:
            for number, team_list in insight.data:
                for team in team_list:
                    blue_banners[team] += number

        year_rca_winners = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.RCA_WINNERS], Insight.year != 0).fetch(1000)
        rca_winners = defaultdict(int)
        for insight in year_rca_winners:
            for team in insight.data:
                rca_winners[team] += 1

        year_world_champions = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.WORLD_CHAMPIONS], Insight.year != 0).fetch(1000)
        world_champions = defaultdict(int)
        for insight in year_world_champions:
            for team in insight.data:
                world_champions[team] += 1

        # Sorting
        regional_winners = self._sortTeamWinsDict(regional_winners)
        blue_banners = self._sortTeamWinsDict(blue_banners)
        rca_winners = self._sortTeamWinsDict(rca_winners)
        world_champions = self._sortTeamWinsDict(world_champions)

        # Creating Insights
        if regional_winners:
            insights.append(self._createInsight(regional_winners, Insight.INSIGHT_NAMES[Insight.REGIONAL_DISTRICT_WINNERS], 0))

        if blue_banners:
            insights.append(self._createInsight(blue_banners, Insight.INSIGHT_NAMES[Insight.BLUE_BANNERS], 0))

        if rca_winners:
            insights.append(self._createInsight(rca_winners, Insight.INSIGHT_NAMES[Insight.RCA_WINNERS], 0))

        if world_champions:
            insights.append(self._createInsight(world_champions, Insight.INSIGHT_NAMES[Insight.WORLD_CHAMPIONS], 0))

        return insights
コード例 #2
0
    def doOverallMatchInsights(self):
        """
        Calculate match insights across all years. Returns a list of Insights.
        """
        insights = []

        year_num_matches = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.NUM_MATCHES], Insight.year != 0).fetch(1000)
        num_matches = []
        for insight in year_num_matches:
            num_matches.append((insight.year, insight.data))

        # Creating Insights
        if num_matches:
            insights.append(self._createInsight(num_matches, Insight.INSIGHT_NAMES[Insight.NUM_MATCHES], 0))

        return insights
コード例 #3
0
    def doOverallMatchInsights(self):
        """
        Calculate match insights across all years. Returns a list of Insights.
        """
        insights = []

        year_num_matches = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[Insight.NUM_MATCHES],
            Insight.year != 0).fetch(1000)
        num_matches = []
        for insight in year_num_matches:
            num_matches.append((insight.year, insight.data))

        # Creating Insights
        if num_matches:
            insights.append(
                self._createInsight(num_matches,
                                    Insight.INSIGHT_NAMES[Insight.NUM_MATCHES],
                                    0))

        return insights
コード例 #4
0
    def doOverallAwardInsights(self):
        """
        Calculate award insights across all years. Returns a list of Insights.
        """
        insights = []

        year_regional_winners = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[
                Insight.REGIONAL_DISTRICT_WINNERS],
            Insight.year != 0).fetch(1000)
        regional_winners = defaultdict(int)
        for insight in year_regional_winners:
            for number, team_list in insight.data:
                for team in team_list:
                    regional_winners[team] += number

        year_blue_banners = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[Insight.BLUE_BANNERS],
            Insight.year != 0).fetch(1000)
        blue_banners = defaultdict(int)
        for insight in year_blue_banners:
            for number, team_list in insight.data:
                for team in team_list:
                    blue_banners[team] += number

        year_rca_winners = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[Insight.RCA_WINNERS],
            Insight.year != 0).fetch(1000)
        rca_winners = defaultdict(int)
        for insight in year_rca_winners:
            for team in insight.data:
                rca_winners[team] += 1

        year_world_champions = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[Insight.WORLD_CHAMPIONS],
            Insight.year != 0).fetch(1000)
        world_champions = defaultdict(list)
        for insight in year_world_champions:
            for team in insight.data:
                world_champions[team].append(insight.year)

        year_division_winners = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[Insight.DIVISION_WINNERS],
            Insight.year != 0).fetch(1000)
        division_winners = defaultdict(list)
        for insight in year_division_winners:
            for team in insight.data:
                division_winners[team].append(insight.year)

        year_successful_elim_teamups = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[
                Insight.SUCCESSFUL_ELIM_TEAMUPS],
            Insight.year != 0).fetch(1000)
        successful_elim_teamups = defaultdict(int)
        for insight in year_successful_elim_teamups:
            for teams in insight.data:
                for pairs in itertools.combinations(teams, 2):
                    successful_elim_teamups[tuple(sorted(pairs))] += 1
        successful_elim_teamups_sorted = defaultdict(list)
        for teams, num_wins in successful_elim_teamups.items():
            sorted_teams = sorted(teams,
                                  key=lambda team_key: int(team_key[3:]))
            successful_elim_teamups_sorted[num_wins].append(sorted_teams)
        successful_elim_teamups_sorted = sorted(
            successful_elim_teamups_sorted.items(), key=lambda x: -x[0])

        # Sorting
        regional_winners = self._sortTeamWinsDict(regional_winners)
        blue_banners = self._sortTeamWinsDict(blue_banners)
        rca_winners = self._sortTeamWinsDict(rca_winners)
        world_champions = self._sortTeamYearWinsDict(world_champions)
        division_winners = self._sortTeamYearWinsDict(division_winners)

        # Creating Insights
        if regional_winners:
            insights.append(
                self._createInsight(
                    regional_winners,
                    Insight.INSIGHT_NAMES[Insight.REGIONAL_DISTRICT_WINNERS],
                    0))

        if blue_banners:
            insights.append(
                self._createInsight(
                    blue_banners, Insight.INSIGHT_NAMES[Insight.BLUE_BANNERS],
                    0))

        if rca_winners:
            insights.append(
                self._createInsight(rca_winners,
                                    Insight.INSIGHT_NAMES[Insight.RCA_WINNERS],
                                    0))

        if world_champions:
            insights.append(
                self._createInsight(
                    world_champions,
                    Insight.INSIGHT_NAMES[Insight.WORLD_CHAMPIONS], 0))

        if division_winners:
            insights.append(
                self._createInsight(
                    division_winners,
                    Insight.INSIGHT_NAMES[Insight.DIVISION_WINNERS], 0))

        if year_successful_elim_teamups:
            insights.append(
                self._createInsight(
                    successful_elim_teamups_sorted,
                    Insight.INSIGHT_NAMES[Insight.SUCCESSFUL_ELIM_TEAMUPS], 0))

        return insights
コード例 #5
0
    def doOverallAwardInsights(self):
        """
        Calculate award insights across all years. Returns a list of Insights.
        """
        insights = []

        year_regional_winners = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.REGIONAL_DISTRICT_WINNERS], Insight.year != 0).fetch(1000)
        regional_winners = defaultdict(int)
        for insight in year_regional_winners:
            for number, team_list in insight.data:
                for team in team_list:
                    regional_winners[team] += number

        year_blue_banners = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.BLUE_BANNERS], Insight.year != 0).fetch(1000)
        blue_banners = defaultdict(int)
        for insight in year_blue_banners:
            for number, team_list in insight.data:
                for team in team_list:
                    blue_banners[team] += number

        year_rca_winners = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.RCA_WINNERS], Insight.year != 0).fetch(1000)
        rca_winners = defaultdict(int)
        for insight in year_rca_winners:
            for team in insight.data:
                rca_winners[team] += 1

        year_world_champions = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.WORLD_CHAMPIONS], Insight.year != 0).fetch(1000)
        world_champions = defaultdict(int)
        for insight in year_world_champions:
            for team in insight.data:
                world_champions[team] += 1

        year_successful_elim_teamups = Insight.query(Insight.name == Insight.INSIGHT_NAMES[Insight.SUCCESSFUL_ELIM_TEAMUPS], Insight.year != 0).fetch(1000)
        successful_elim_teamups = defaultdict(int)
        for insight in year_successful_elim_teamups:
            for teams in insight.data:
                for pairs in itertools.combinations(teams, 2):
                    successful_elim_teamups[tuple(sorted(pairs))] += 1
        successful_elim_teamups_sorted = defaultdict(list)
        for teams, num_wins in successful_elim_teamups.items():
            sorted_teams = sorted(teams, key=lambda team_key: int(team_key[3:]))
            successful_elim_teamups_sorted[num_wins].append(sorted_teams)
        successful_elim_teamups_sorted = sorted(successful_elim_teamups_sorted.items(), key=lambda x: -x[0])

        # Sorting
        regional_winners = self._sortTeamWinsDict(regional_winners)
        blue_banners = self._sortTeamWinsDict(blue_banners)
        rca_winners = self._sortTeamWinsDict(rca_winners)
        world_champions = self._sortTeamWinsDict(world_champions)

        # Creating Insights
        if regional_winners:
            insights.append(self._createInsight(regional_winners, Insight.INSIGHT_NAMES[Insight.REGIONAL_DISTRICT_WINNERS], 0))

        if blue_banners:
            insights.append(self._createInsight(blue_banners, Insight.INSIGHT_NAMES[Insight.BLUE_BANNERS], 0))

        if rca_winners:
            insights.append(self._createInsight(rca_winners, Insight.INSIGHT_NAMES[Insight.RCA_WINNERS], 0))

        if world_champions:
            insights.append(self._createInsight(world_champions, Insight.INSIGHT_NAMES[Insight.WORLD_CHAMPIONS], 0))

        if year_successful_elim_teamups:
            insights.append(self._createInsight(successful_elim_teamups_sorted, Insight.INSIGHT_NAMES[Insight.SUCCESSFUL_ELIM_TEAMUPS], 0))

        return insights
コード例 #6
0
    def doOverallAwardInsights(self):
        """
        Calculate award insights across all years. Returns a list of Insights.
        """
        insights = []

        year_regional_winners = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[
                Insight.REGIONAL_DISTRICT_WINNERS],
            Insight.year != 0).fetch(1000)
        regional_winners = {}
        for insight in year_regional_winners:
            for number, team_list in insight.data:
                for team in team_list:
                    if team in regional_winners:
                        regional_winners[team] += number
                    else:
                        regional_winners[team] = number

        year_blue_banners = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[Insight.BLUE_BANNERS],
            Insight.year != 0).fetch(1000)
        blue_banners = {}
        for insight in year_blue_banners:
            for number, team_list in insight.data:
                for team in team_list:
                    if team in blue_banners:
                        blue_banners[team] += number
                    else:
                        blue_banners[team] = number

        year_rca_winners = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[Insight.RCA_WINNERS],
            Insight.year != 0).fetch(1000)
        rca_winners = {}
        for insight in year_rca_winners:
            for team in insight.data:
                if team in rca_winners:
                    rca_winners[team] += 1
                else:
                    rca_winners[team] = 1

        year_world_champions = Insight.query(
            Insight.name == Insight.INSIGHT_NAMES[Insight.WORLD_CHAMPIONS],
            Insight.year != 0).fetch(1000)
        world_champions = {}
        for insight in year_world_champions:
            for team in insight.data:
                if team in world_champions:
                    world_champions[team] += 1
                else:
                    world_champions[team] = 1

        # Sorting
        regional_winners = self._sortTeamWinsDict(regional_winners)
        blue_banners = self._sortTeamWinsDict(blue_banners)
        rca_winners = self._sortTeamWinsDict(rca_winners)
        world_champions = self._sortTeamWinsDict(world_champions)

        # Creating Insights
        if regional_winners:
            insights.append(
                self._createInsight(
                    regional_winners,
                    Insight.INSIGHT_NAMES[Insight.REGIONAL_DISTRICT_WINNERS],
                    0))

        if blue_banners:
            insights.append(
                self._createInsight(
                    blue_banners, Insight.INSIGHT_NAMES[Insight.BLUE_BANNERS],
                    0))

        if rca_winners:
            insights.append(
                self._createInsight(rca_winners,
                                    Insight.INSIGHT_NAMES[Insight.RCA_WINNERS],
                                    0))

        if world_champions:
            insights.append(
                self._createInsight(
                    world_champions,
                    Insight.INSIGHT_NAMES[Insight.WORLD_CHAMPIONS], 0))

        return insights