""" Tabulate the current conference standings. """ from tabulate import tabulate # ANSI escape codes for text formatting BOLD = '\033[1m' END = '\033[0m' RED = '\033[91m' GREEN = '\033[32m' def build_standings(standings) -> None: """ Prints team standings in two separate tables. Args: standings (dict): Team standings data. """ eastern_data = [] western_data = [] eastern_rank = 1 western_rank = 1 for result_set in standings['resultSets']: if result_set['name'] == 'Standings': for team in result_set['rowSet']: conference = team[5] team_name = team[4] wins = team[12] losses = team[13] win_pct = team[14] gb = team[37] home_record = team[17] away_record = team[18] last_10 = team[19] streak = team[35] if int(streak) < 0: strk_color = f"{RED}{streak}{END}" else: strk_color = f"{GREEN}{streak}{END}" if conference == "East": eastern_data.append([ f"{eastern_rank}", f"{team_name}", f"{wins}-{losses}", f"{win_pct:.3f}", f"{gb}", f"{strk_color}", f"{last_10}", f"{home_record}", f"{away_record}" ]) eastern_rank += 1 elif conference == "West": western_data.append([ f"{western_rank}", f"{team_name}", f"{wins}-{losses}", f"{win_pct:.3f}", f"{gb}", f"{strk_color}", f"{last_10}", f"{home_record}", f"{away_record}" ]) western_rank += 1 headers = ["Rank", "Team", "W-L", "PCT", "GB", "STRK", "L10", "HOME", "AWAY"] print(f"{BOLD}Eastern Conference Standings:{END}") print(tabulate(eastern_data, headers=headers, tablefmt="grid")) print("\n") print(f"{BOLD}Western Conference Standings:{END}") print(tabulate(western_data, headers=headers, tablefmt="grid"))