29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
""" Parser Factory """
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from .provide_cflscoreboard import CflScoreboardProvider
|
|
from .provide_espn import EspnProvider
|
|
from .provide_espn_all import EspnAllLeaguesProvider
|
|
from .provide_hockeytech import HockeyTechProvider
|
|
from .provider_base import BaseSportProvider
|
|
from .utils import is_integer
|
|
|
|
if TYPE_CHECKING:
|
|
from .coordinator import TeamTrackerCoordinator
|
|
|
|
|
|
def get_provider(sport_path: str, league_path: str, team_id: str="", coordinator: TeamTrackerCoordinator | None = None) -> BaseSportProvider:
|
|
"""Factory function to get the correct provider instance."""
|
|
|
|
provider: BaseSportProvider = EspnProvider(coordinator)
|
|
|
|
if sport_path.lower() == "hockeytech":
|
|
provider = HockeyTechProvider(coordinator)
|
|
elif sport_path.lower() == "cflscoreboard":
|
|
provider = CflScoreboardProvider(coordinator)
|
|
elif league_path.lower() == "all" and is_integer(team_id):
|
|
provider = EspnAllLeaguesProvider(coordinator)
|
|
|
|
return provider |