32 lines
1.0 KiB
Python
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 |