|
from dataclasses import dataclass |
|
from urllib.parse import urljoin |
|
from typing import List |
|
from domain.conferences import NFLConference |
|
from domain import divisions |
|
|
|
|
|
@dataclass |
|
class NFLTeam: |
|
team_name: str |
|
team_short_name: str |
|
city: str |
|
division: divisions.NFLDivision |
|
footballguys_short_name: str = "" |
|
id_map_short_name: str = "" |
|
rosters_short_name: str = "" |
|
url: str = "" |
|
injury_report_suffix: str = "/team/injury-report/" |
|
|
|
def __post_init__(self): |
|
self.footballguys_short_name = ( |
|
self.team_short_name if self.footballguys_short_name == "" else self.footballguys_short_name |
|
) |
|
self.id_map_short_name = self.team_short_name if self.id_map_short_name == "" else self.id_map_short_name |
|
self.rosters_short_name = self.team_short_name if self.rosters_short_name == "" else self.rosters_short_name |
|
self.conference: NFLConference = self.division.conference |
|
self.injury_report_url = urljoin(self.url, self.injury_report_suffix) |
|
self.team_full_name = " ".join([self.city, self.team_name]) |
|
|
|
ALL_TEAMS.append(self) |
|
|
|
|
|
ALL_TEAMS: List[NFLTeam] = [] |
|
|
|
|
|
arizona_cardinals = NFLTeam( |
|
team_name="Cardinals", |
|
team_short_name="ARI", |
|
city="Arizona", |
|
division=divisions.NFCWest, |
|
url="https://www.azcardinals.com/", |
|
) |
|
|
|
atlanta_falcons = NFLTeam( |
|
team_name="Falcons", |
|
team_short_name="ATL", |
|
city="Atlanta", |
|
division=divisions.NFCSouth, |
|
url="https://www.atlantafalcons.com/", |
|
) |
|
|
|
baltimore_ravens = NFLTeam( |
|
team_name="Ravens", |
|
team_short_name="BAL", |
|
city="Baltimore", |
|
division=divisions.AFCNorth, |
|
url="https://www.baltimoreravens.com/", |
|
) |
|
|
|
buffalo_bills = NFLTeam( |
|
team_name="Bills", |
|
team_short_name="BUF", |
|
city="Buffalo", |
|
division=divisions.AFCEast, |
|
url="https://www.buffalobills.com/", |
|
) |
|
|
|
carolina_panthers = NFLTeam( |
|
team_name="Panthers", |
|
team_short_name="CAR", |
|
city="Carolina", |
|
division=divisions.NFCSouth, |
|
url="https://www.panthers.com/", |
|
) |
|
|
|
chicago_bears = NFLTeam( |
|
team_name="Bears", |
|
team_short_name="CHI", |
|
city="Chicago", |
|
division=divisions.NFCNorth, |
|
url="https://www.chicagobears.com/", |
|
) |
|
|
|
cincinnati_bengals = NFLTeam( |
|
team_name="Bengals", |
|
team_short_name="CIN", |
|
city="Cincinnati", |
|
division=divisions.AFCNorth, |
|
url="https://www.bengals.com/", |
|
) |
|
|
|
cleveland_browns = NFLTeam( |
|
team_name="Browns", |
|
team_short_name="CLE", |
|
city="Cleveland", |
|
division=divisions.AFCNorth, |
|
url="https://www.clevelandbrowns.com/", |
|
) |
|
|
|
dallas_cowboys = NFLTeam( |
|
team_name="Cowboys", |
|
team_short_name="DAL", |
|
city="Dallas", |
|
division=divisions.NFCEast, |
|
url="https://www.dallascowboys.com/", |
|
) |
|
|
|
denver_broncos = NFLTeam( |
|
team_name="Broncos", |
|
team_short_name="DEN", |
|
city="Denver", |
|
division=divisions.AFCWest, |
|
url="https://www.denverbroncos.com/", |
|
) |
|
|
|
detroit_lions = NFLTeam( |
|
team_name="Lions", |
|
team_short_name="DET", |
|
city="Detroit", |
|
division=divisions.NFCNorth, |
|
url="https://www.detroitlions.com/", |
|
) |
|
|
|
green_bay_packers = NFLTeam( |
|
team_name="Packers", |
|
team_short_name="GB", |
|
city="Green Bay", |
|
division=divisions.NFCNorth, |
|
url="https://www.packers.com/", |
|
id_map_short_name="GBP", |
|
) |
|
|
|
houston_texans = NFLTeam( |
|
team_name="Texans", |
|
team_short_name="HOU", |
|
city="Houston", |
|
division=divisions.AFCSouth, |
|
url="https://www.houstontexans.com/", |
|
) |
|
|
|
indianapolis_colts = NFLTeam( |
|
city="Indianapolis", |
|
team_name="Colts", |
|
team_short_name="IND", |
|
division=divisions.AFCSouth, |
|
url="https://www.colts.com/", |
|
) |
|
|
|
jacksonville_jaguars = NFLTeam( |
|
city="Jacksonville", |
|
team_name="Jaguars", |
|
team_short_name="JAX", |
|
division=divisions.AFCSouth, |
|
url="https://www.jaguars.com/", |
|
id_map_short_name="JAC", |
|
) |
|
|
|
kansas_city_chiefs = NFLTeam( |
|
city="Kansas City", |
|
team_name="Chiefs", |
|
team_short_name="KC", |
|
division=divisions.AFCWest, |
|
url="https://www.chiefs.com/", |
|
id_map_short_name="KCC", |
|
) |
|
|
|
las_vegas_raiders = NFLTeam( |
|
city="Las Vegas", |
|
team_name="Raiders", |
|
team_short_name="LV", |
|
division=divisions.AFCWest, |
|
url="https://www.raiders.com/", |
|
id_map_short_name="LVR", |
|
) |
|
|
|
los_angeles_chargers = NFLTeam( |
|
city="Los Angeles", |
|
team_name="Chargers", |
|
team_short_name="LAC", |
|
division=divisions.AFCWest, |
|
url="https://www.chargers.com/", |
|
) |
|
|
|
los_angeles_rams = NFLTeam( |
|
city="Los Angeles", |
|
team_name="Rams", |
|
team_short_name="LAR", |
|
division=divisions.NFCWest, |
|
url="https://www.therams.com/", |
|
rosters_short_name="LA", |
|
) |
|
|
|
miami_dolphins = NFLTeam( |
|
city="Miami", |
|
team_name="Dolphins", |
|
team_short_name="MIA", |
|
division=divisions.AFCEast, |
|
url="https://www.miamidolphins.com/", |
|
) |
|
|
|
minnesota_vikings = NFLTeam( |
|
city="Minnesota", |
|
team_name="Vikings", |
|
team_short_name="MIN", |
|
division=divisions.NFCNorth, |
|
url="https://www.vikings.com/", |
|
) |
|
|
|
new_england_patriots = NFLTeam( |
|
city="New England", |
|
team_name="Patriots", |
|
team_short_name="NE", |
|
division=divisions.AFCEast, |
|
url="https://www.patriots.com/", |
|
id_map_short_name="NEP", |
|
) |
|
|
|
new_orleans_saints = NFLTeam( |
|
city="New Orleans", |
|
team_name="Saints", |
|
team_short_name="NO", |
|
division=divisions.NFCSouth, |
|
url="https://www.neworleanssaints.com/", |
|
id_map_short_name="NOS", |
|
) |
|
|
|
new_york_giants = NFLTeam( |
|
city="New York", |
|
team_name="Giants", |
|
team_short_name="NYG", |
|
division=divisions.NFCEast, |
|
url="https://www.giants.com/", |
|
) |
|
|
|
new_york_jets = NFLTeam( |
|
city="New York", |
|
team_name="Jets", |
|
team_short_name="NYJ", |
|
division=divisions.AFCEast, |
|
url="https://www.newyorkjets.com/", |
|
) |
|
|
|
philadelphia_eagles = NFLTeam( |
|
city="Philadelphia", |
|
team_name="Eagles", |
|
team_short_name="PHI", |
|
division=divisions.NFCEast, |
|
url="https://www.philadelphiaeagles.com/", |
|
) |
|
|
|
pittsburgh_steelers = NFLTeam( |
|
city="Pittsburgh", |
|
team_name="Steelers", |
|
team_short_name="PIT", |
|
division=divisions.AFCNorth, |
|
url="https://www.steelers.com/", |
|
) |
|
|
|
san_francisco_49ers = NFLTeam( |
|
city="San Francisco", |
|
team_name="49ers", |
|
team_short_name="SF", |
|
division=divisions.NFCWest, |
|
url="https://www.49ers.com/", |
|
id_map_short_name="SFO", |
|
) |
|
|
|
seattle_seahawks = NFLTeam( |
|
city="Seattle", |
|
team_name="Seahawks", |
|
team_short_name="SEA", |
|
division=divisions.NFCWest, |
|
url="https://www.seahawks.com/", |
|
) |
|
|
|
tampa_bay_buccaneers = NFLTeam( |
|
city="Tampa Bay", |
|
team_name="Buccaneers", |
|
team_short_name="TB", |
|
division=divisions.NFCSouth, |
|
url="https://www.buccaneers.com/", |
|
id_map_short_name="TBB", |
|
) |
|
|
|
tennessee_titans = NFLTeam( |
|
city="Tennessee", |
|
team_name="Titans", |
|
team_short_name="TEN", |
|
division=divisions.AFCSouth, |
|
url="https://www.tennesseetitans.com/", |
|
) |
|
|
|
washington_football_team = NFLTeam( |
|
city="Washington", |
|
team_name="Commanders", |
|
team_short_name="WAS", |
|
division=divisions.NFCEast, |
|
url="https://www.commanders.com/", |
|
) |
|
|
|
|
|
PFR_NAME_TO_SCHEDULE_NAME_MAP = {t.team_full_name: t.rosters_short_name for t in ALL_TEAMS} |
|
|