Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1"""LICENSE 

2Copyright 2020 Hermann Krumrey <hermann@krumreyh.com> 

3 

4This file is part of betbot. 

5 

6betbot is free software: you can redistribute it and/or modify 

7it under the terms of the GNU General Public License as published by 

8the Free Software Foundation, either version 3 of the License, or 

9(at your option) any later version. 

10 

11betbot is distributed in the hope that it will be useful, 

12but WITHOUT ANY WARRANTY; without even the implied warranty of 

13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

14GNU General Public License for more details. 

15 

16You should have received a copy of the GNU General Public License 

17along with betbot. If not, see <http://www.gnu.org/licenses/>. 

18LICENSE""" 

19 

20import os 

21import logging 

22from typing import List 

23from betbot.api.ApiConnection import ApiConnection 

24from betbot.api.Match import Match 

25from betbot.api.Bet import Bet 

26 

27 

28class Predictor: 

29 """ 

30 Class that specifies required methods for predictor objects 

31 """ 

32 

33 def __init__(self, api: ApiConnection, league: str, season: int): 

34 """ 

35 Initializes the model directory if it does not exist 

36 :param api: The bundesliga-tippspiel API connection 

37 :param league: The league for which to predict matches 

38 :param season: The season for which to predict matches 

39 """ 

40 self.api = api 

41 self.league = league 

42 self.season = season 

43 self.logger = logging.getLogger(self.__class__.__name__) 

44 self.model_dir = os.path.join( 

45 os.path.expanduser("~"), 

46 ".config/betbot" 

47 ) 

48 if not os.path.isdir(self.model_dir): 

49 os.makedirs(self.model_dir) 

50 

51 @classmethod 

52 def name(cls) -> str: 

53 """ 

54 :return: The name of the predictor 

55 """ 

56 raise NotImplementedError() 

57 

58 def predict(self, matches: List[Match]) -> List[Bet]: 

59 """ 

60 Performs the prediction 

61 :param matches: The matches to predict 

62 :return: The predictions as Bet objects 

63 """ 

64 raise NotImplementedError()