"""Configuration File for Bet365 Client."""
from enum import DynamicClassAttribute, Enum
from typing import Union
[docs]class ExtendedEnum(Enum):
"""Allows access to overloaded functions for standard Enum."""
[docs] @classmethod
def list(cls):
"""Interface to provide all allowed values for a RundownSportId. """
return list(map(lambda c: (c.sport_id, c.pretty), cls))
[docs]class Bet365SportId(ExtendedEnum):
"""
Bet365 API SportId Enumeration.
Registered members have accesses to:
_name_ - name
_value_ - value[0]
_pretty_ - value[1]
>>> soccer = Bet365SportId.AMERICAN_FOOTBALL
>>> soccer.name
>>> "AMERICAN_FOOTBALL"
>>> soccer.value
>>> 12
>>> soccer.pretty
>>> "american-football"
"""
@DynamicClassAttribute
def pretty(self) -> Union[str, None]:
"""Access for `pretty` in base `Enum`."""
return self.value[1] if self else None
@DynamicClassAttribute
def sport_id(self) -> Union[str, None]:
"""Access for `sport_id` in base `Enum`."""
return self.value[0] if self else None
SOCCER = ("1", "soccer")
CRICKET = ("3", "cricket")
RUGBY_UNION = ("8", "rugby-union")
BOXING_UFC = ("9", "boxing-ufc")
AMERICAN_FOOTBALL = ("12", "american-football")
TENNIS = ("13", "tennis")
SNOOKER = ("14", "snooker")
DARTS = ("15", "darts")
BASEBALL = ("16", "baseball")
ICE_HOCKEY = ("17", "ice-hockey")
BASKETBALL = ("18", "basketball")
RUGBY_LEAGUE = ("19", "rugby")
AUSTRALIAN_RULES = ("36", "austalian-rules")
BOWLS = ("66", "bowls")
GAELIC_SPORTS = ("75", "gaelic-sports")
HANDBALL = ("78", "handball")
FUTSAL = ("83", "futsal")
FLOORBALL = ("90", "floorball")
VOLLEYBALL = ("91", "volleyball")
TABLE_TENNIS = ("92", "table-tennis")
BADMINTON = ("94", "badminton")
BEACH_VOLLEYBALL = ("95", "beach-volleyball")
SQUASH = ("107", "squash")
WATER_POLO = ("110", "water-polo")
E_SPORTS = ("151", "e-sports")
[docs]class Bet365Mnemonic(Enum):
"""
Bet365 API Mnemonic Field Enumeration.
see: (https://1394697259.gitbook.io/bet365-api/bet36)
Internal mapping to cast fields where necessary
"""
PLACE_365 = "3P"
WIN_365 = "3W"
MARKET_GROUP_PAIR_ID = "4Q"
FINANCIALS_PRICE_1 = "AB"
STATS_COLUMN = "AC"
ADDITIONAL_DATA_TEAM_TOUCHDOWN_QUOTE = "AD"
STATS_CELL = "AE"
ARCHIVE_FIXTURE_INFO = "AF"
ASIAN_HOVER_FINANCIALS_MARKET_ODDS_1 = "AH"
ANIMATION_ID = "AI"
FINANCIALS_MARKET_ODDS_2 = "AJ"
ANIMATION_ICON = "AM"
ANIMATION_TOPIC = "AO"
STATS_PANE = "AP"
FINANCIALS_CLOSE_TIME = "AQ"
ADDITIONAL_STATS_ANIMATION_SOUND_TEAM_FIELDGOAL_QUOTE = "AS"
ANIMATION_TEXT_STATS_TAB = "AT"
AUDIO_AVAILABLE = "AU"
ARCHIVE_VIDEO_AVAILABLE = "AV"
BUTTON_BAR = "BB"
BOOK_CLOSES_CLOSE_BETS_COUNT = "BC"
PULL_BET_DATA = "BD"
BET = "BE"
BLURB_HEADER = "BH"
BUTTON_BAR_INDEX_BUTTON_SPLIT_INDEX = "BI"
BASE_LINE = "BL"
BASE_ODDS_OPEN_BETS_COUNT = "BO"
BANNER_STYLE = "BS"
INFO_POD_DETAIL_2 = "BT"
C1_ID_MINI_DIARY_C1 = "C1"
C2_ID_MINI_DIARY_C2 = "C2"
MINI_DIARY_C3 = "C3"
CLOSE_BETS = "CB"
BET_TYPE_PULL_COMPETITION_CODE = "CC"
COMPETITION_DROPDOWN_FINANCIALS_TRADE = "CD"
CONFIG = "CF"
GLOBAL_CONFIG = "CG"
CLASS_ID_MINI_DIARY_CUP_ICON = "CI"
COMPETITION_KEY = "CK"
CLASSIFICATION = "CL"
BET_CALL_FEATURE_DISABLED_COMMENT = "CM"
CHANNEL_COLUMN_NUMBER = "CN"
COLUMN = "CO"
CLOSE_BETS_PRESENTATION_PULL_DISABLED_CURRENT_PROGRESS_CURRENT_PERIOD = (
"CP" # noqa: E501
)
CLASS_ORDER_CLOSE_BET_RETURNS = "CR"
CLASSIFICATIONS = "CS"
COMPETITION_NAME = "CT"
CURRENT_INFO = "CU"
DATA_1 = "D1"
DATA_2 = "D2"
DATA_3 = "D3"
DATA_4 = "D4"
DATA_5 = "D5"
DIARY_DAY = "DA"
DISPLAY_CLOCK = "DC"
DISPLAY_DATE = "DD"
DESCRIPTION = "DE"
IN_PLAY_LAUNCHER_DISPLAY_MODE = "DM"
DIARY_NAME_DRAW_NUMBER = "DN"
DEFAULT_OPEN = "DO"
DECIMAL_PLACES = "DP"
DIARY_REFRESH = "DR"
DISPLAY_SCORE = "DS"
DISABLE_COLUMN_DISTRIBUTION = "DX"
DIARY = "DY"
EVENT_TIME = "EA"
ERROR_CODE_EXCLUDED_COUNTRY_CODES = "EC"
EXTRA_DATA_2_TEAM_ODDS_A = "ED"
ETOTE_LINK_DATA = "EE"
EVENT_ID = "EI"
EXTRA_STATS_AVAILABLE = "EL"
EMPTY = "EM"
EXTRA_PARTICIPANTS = "EP"
ERROR_LOGGING = "ER"
EMBEDDED_STREAMING_EXTRA_SCORES = "ES"
END_TIME_EVENT_TYPE = "ET"
EVENT = "EV"
EACH_WAY = "EW"
EXTRA_DATA_1_TEAM_ODDS_H = "EX"
FORCE_DISPLAY = "FD"
FILTERING = "FF"
FIXTURE_PARENT_ID = "FI"
FINANCIALS_FEED_1 = "FK"
FINANCIALS_PERIOD_1_APN_FLUC = "FL"
FINANCIALS_MARKET_1A = "FM"
FINANCIALS_MARKET_1B = "FN"
FINANCIALS_FEED_2_FORM_PULL = "FO"
FINANCIALS_PERIOD_2_FIXED_PLACE = "FP"
FINANCIALS_MARKET_2A = "FQ"
FINANCIALS_MARKET_2B = "FR"
FIXTURE_STARTED = "FS"
FIXED_WIN = "FW"
LOTTO_GAME_CODE = "GC"
LOTTO_GAME_MARKET = "GM"
GROUP = "GR"
HANDICAP = "HA"
HANDICAP_FORMATTED = "HD"
HEADER_IMAGE_BET_HISTORY = "HI"
MARKET_BAR = "HM"
DEFAULT_OPEN_HOMEPAGE = "HO"
SHOW_ON_HOMEPAGE = "HP"
HASH = "HS"
POD_HEADER_TEXT = "HT"
INFO_BANNER_SUBHEAD2 = "HU"
POD_BODY_TEXT_2 = "HV"
HORSE_WEIGHT = "HW"
HORSE_AGE = "HY"
ID2 = "I2"
AUDIO_ICON_DIARY_AUDIO_AVAILABLE = "IA"
IBOX = "IB"
ICON = "IC"
ID = "ID"
IN_PLAY = "IF"
IMAGE_ID = "IG"
IMAGE_INCLUDE_OVERVIEW_MARKET = "IM"
INFO_INFO_POD_IMAGE_URL = "IN"
ITEM_ORDER = "IO"
IN_PLAY_AVAILABLE_FLAG_PARENT_ID = "IP"
INFO_POD_IMAGE1 = "IQ"
INRUNNING_INFO = "IR"
INFO_POD_IMAGE_PATH1 = "IS"
TOPIC_ID = "IT"
INFO_POD_IMAGE2 = "IU"
JOCKEY_PULL = "JN"
JOCKEY = "JY"
KIT_COLORS = "KC"
KIT_ID = "KI"
BREADCRUMB_LEVEL_1 = "L1"
LABEL_INFO_POD_LINK_1_ID = "LA"
INFO_POD_LINK_1_DISPLAY_TEXT = "LB"
EVENT_COUNT_INFO_POD_LINK_1_C1_ID = "LC"
INFO_POD_LINK_1_C1_ID_TABLE = "LD"
INFO_POD_LINK_1_C2_ID = "LE"
INFO_POD_LINK_1_C2_ID_TABLE = "LF"
INFO_POD_LINK_2_ID_SOCCER_LEAGUE = "LG"
INFO_POD_LINK_2_DISPLAY_TEXT = "LH"
INFO_POD_LINK_2_C1_ID = "LI"
INFO_POD_LINK_2_C1_ID_TABLE = "LJ"
INFO_POD_LINK_2_C2_ID = "LK"
INFO_POD_LINK_2_C2_ID_TABLE = "LL"
POD_ENCODED_URL_1_LIVE_MARKETS = "LM"
POD_ENCODED_URL_2 = "LN"
DEFAULT_OPEN_LEFT = "LO"
LIVE_IN_PLAY_INFO_POD_LINK_1_C3_ID = "LP"
INFO_POD_LINK_1_C3_ID_TABLE = "LQ"
INFO_POD_LINK_1_C3_SECTION_ID_LAST_RACES = "LR"
PREVIOUS_SET_SCORE_SELECTED = "LS"
MARKET = "MA"
BET_CALL_V2_DISABLED_MAX_BET = "MB"
CUSTOMER_TO_CUSTOMER_CALLING_FEATURE_DISABLED_COMMENT_V4_MARKET_COUNT = (
"MC" # noqa: E501
)
MATCHLIVE_PERIOD = "MD"
MULTI_EVENT = "ME"
MATCH_FLAG = "MF"
MARKET_GROUP = "MG"
MATCH_LENGTH = "ML"
MERGE_MARKET = "MM"
SECONDARY_UK_EVENT = "MO"
MATCH_POSTPONED = "MP"
CUSTOMER_TO_REPRESENTATIVE_CALLING_FEATURE_DISABLED_MORE_MARKETS = (
"MR" # noqa: E501
)
MEDIA_ID = "MS"
BET_CALL_V2_TWILIO_DISABLED_MARKET_TYPE = "MT"
MULTILINE = "MU"
LOTTO_MAX_WINNINGS = "MW"
MARKET_STYLE = "MY"
NAME2 = "N2"
NAME = "NA"
CLOTH_NUMBER = "NC"
NGENERA = "NG"
NEXT_HEADER = "NH"
NON_MATCH_BASED = "NM"
NON_RUNNER = "NR"
NEUTRAL_VENUE_TEXT = "NT"
NEUTRAL_VENUE = "NV"
BANKER_OPTION_OPEN_BETS_ENABLED = "OB"
ODDS = "OD"
ODDS_HISTORY = "OH"
ODDS_OVERRIDE = "OO"
OPEN_BETS_PRESENTATION_PULL_DISABLED_OPEN_BETS = "OP"
ORDER = "OR"
OTHERS_AVAILABLE = "OT"
PARTICIPANT = "PA"
PUSH_BALANCE_ENABLED = "PB"
PAGE_DATA_1_PARTICIPANT_COUNT_PARTIAL_CASHOUT_AVAILABLE = "PC"
PAGE_DATA_POD_INFO_POD_TYPE_PULL_DELAY = "PD"
PARTICIPANTS_EXCEEDED_PERIOD = "PE"
PUSH_FLAG = "PF"
PENALTY_GOALS_MATCHLIVE_ADDITIONAL_INFO_PAGE_TYPE = "PG"
PHONE_ONLY = "PH"
PLAYING_INDICATOR_AUS_TOTE_COMBINATION = "PI"
CLOTH_NUMBER_PULL = "PN"
POD_STACK_ORDER_POINTS = "PO"
POD_OPEN = "PP"
PREFERENCE_ID_MARKET_GROUP_USER_PREFERENCE = "PR"
POD_STACK_PARTICIPANT_STATUS = "PS"
PRODUCT_TYPE_POD_TYPE = "PT"
PREMIUM_VERSION = "PV"
NO_OFFER = "PX"
PARTICIPANT_STYLE = "PY"
RANGE = "RA"
RESULT_CODE = "RC"
RACE_DETAILS = "RD"
BET_RETURNS = "RE"
REGION = "RG"
R4_COMMENT = "RI"
DEFAULT_OPEN_RIGHT_RACE_OFF = "RO"
RUNNER_STATUS_REGULAR_SINGLE = "RS"
RESULTS_TEXT = "RT"
MATCHLIVE_STATS_1 = "S1"
MATCHLIVE_STATS_2 = "S2"
MATCHLIVE_STATS_3 = "S3"
MATCHLIVE_STATS_4 = "S4"
MATCHLIVE_STATS_5 = "S5"
MATCHLIVE_STATS_6 = "S6"
MATCHLIVE_STATS_7 = "S7"
MATCHLIVE_STATS_8 = "S8"
CHANGE_STAMP_SUSPEND_ARRAY = "SA"
SCOREBOARD_TYPE = "SB"
SCORE_SCORES_COLUMN = "SC"
AUDIO_ID = "SD"
SECONDARY_EVENT = "SE"
SPOTLIGHT_FORM = "SF"
STAT_GROUP = "SG"
IMAGE_ID_PULL_SECTION_ID = "SI"
SCORES_CELL = "SL"
START_TIME = "SM"
DRAW_NUMBER_PULL = "SN"
STAT_PERIOD = "SP"
SHORT_SCORE_SUSPENDED_SELECTION = "SS"
INFO_POD_DETAIL_1_STAT_POD_BODY_TEXT_1_STAKE = "ST"
SUCCESS_SUSPENDED = "SU"
MATCHLIVE_AVAILABLE = "SV"
STYLE = "SY"
STAT_LOCATION = "SZ"
C1_TABLE_MINI_DIARY_T1_TEXT_1 = "T1"
C2_TABLE_MINI_DIARY_T2_TEXT_2 = "T2"
MINI_DIARY_T3_TEXT_3 = "T3"
TEXT_4 = "T4"
TEXT_5 = "T5"
TIME_ADDED = "TA"
BREADCRUMB_TRAIL = "TB"
BET_TOTE_TYPE_TEAM_COLOR = "TC"
COUNTDOWN_TAX_DETAILS = "TD"
TEAM = "TE"
TEAM_GROUP = "TG"
TMR_SERVER = "TI"
LEAGUE_TOPIC_TOPIC_LIST = "TL"
STAT_TIME_TMR_MINS = "TM"
TRAINER_NAME = "TN"
EMPTY_TOPIC_ID_PHONE_ONLY_LIST = "TO"
TIME_STAMP = "TP"
TAX_RATE_TOPIC_REFERENCE = "TR"
TMR_SECS_TOTE_NAMES = "TS"
TMR_TICKING = "TT"
TMR_UPDATED = "TU"
TAX_METHOD_TOPIC_LIST_EXCLUSIONS = "TX"
CURRENT_INFO_V4 = "UC"
UPDATE_FREQUENCY = "UF"
VALUE = "VA"
MATCHLIVE_ANIMATION = "VC"
VIRTUAL_DATA = "VD"
VIDEO_AVAILABLE = "VI"
VISIBLE = "VL"
VIRTUAL_RACE = "VR"
VIDEO_STREAM = "VS"
WIZE_GUY = "WG"
WINNING_MARGIN = "WM"
CHECK_BOX = "XB"
EXCLUDE_COLUMN_NUMBERS = "XC"
EXTRA_INFO_NODE_TEAM_MATCHTOTAL_QUOTE = "XI"
CONTROLLER = "XL"
SHORT_POINTS = "XP"
EXTRA_TIME_LENGTH = "XT"
MATCHLIVE_COORDINATES = "XY"
TIMEZONE_ADJUSTMENT = "ZA"
PADDOCK_VIDEO_AVAILABLE = "_V"
RESPONSE_OBJECT_FACTORY = {
"result": "ResultResponse",
"inplay_filter": "InPlayFilterResponse",
"event": "InPlayOddsResponse",
"prematch": "PreMatchOddsResponse",
"inplay": "InPlayEventsResponse",
"upcoming": "UpcomingEventsResponse",
}