Files
HomeAssistance/custom_components/teamtracker/parser_factory.py
T
2026-06-05 22:34:31 -04:00

32 lines
1.0 KiB
Python

""" Parser factory """
from __future__ import annotations
from typing import TYPE_CHECKING
from .parse_cflscoreboard import CflScoreboardParser
from .parse_espn import EspnParser
from .parse_espn_all import EspnAllParser
from .parse_hockeytech import HockeyTechParser
from .parser_base import BaseSportParser
from .provide_cflscoreboard import CFL_DATA_FORMAT
from .provide_espn_all import ESPNALL_DATA_FORMAT
from .provide_hockeytech import HT_DATA_FORMAT
if TYPE_CHECKING:
from .coordinator import TeamTrackerCoordinator
def get_parser(data_format:str, coordinator: TeamTrackerCoordinator) -> BaseSportParser:
"""Factory function to get the correct provider instance."""
parser: BaseSportParser = EspnParser(coordinator) # DEFAULT_DATA_FORMAT
if data_format == CFL_DATA_FORMAT:
parser = CflScoreboardParser(coordinator)
elif data_format == ESPNALL_DATA_FORMAT:
parser = EspnAllParser(coordinator)
elif data_format == HT_DATA_FORMAT:
parser = HockeyTechParser(coordinator)
return parser