def runTest(self): database_session = MlbDatabase(DB_PATH).open_session() entry = PostgameHitterGameEntry() entry.rotowire_id = '10972' database_session.close()
def setUp(self): add_pitcher_entry() database_session = MlbDatabase(DB_PATH).open_session() entry = GameEntry(date.today(), date.today().ctime(), CommitNewPregamePitcherTest.HOME_TEAM, 'MIA') database_session.add(entry) database_session.commit() database_session.close()
def mine_pregame_stats(): """ Mine the hitter/pitcher stats and predict the outcomes and commit to the database session :param mlb_database: MlbDatabase object """ database_session = MlbDatabase().open_session() games = get_game_lineups(database_session) update_ids(games, database_session) get_pregame_hitting_stats(games) get_pregame_pitching_stats(games) database_session.close()
def add_pitcher_entries(): database_session = MlbDatabase(DB_PATH).open_session() starting_pitcher_1 = PitcherEntry('Andrew', 'Cashner', '10468') database_session.add(starting_pitcher_1) starting_pitcher_2 = PitcherEntry('Jeff', 'Samardzija', '9374') database_session.add(starting_pitcher_2) database_session.commit() database_session.close()
def runTest(self): database_session = MlbDatabase(DB_PATH).open_session() entry = PostgamePitcherGameEntry() entry.rotowire_id = '10468' entry.game_date = date.today() entry.game_time = date.today().ctime() entry.home_team = CommitNewPregamePitcherTest.HOME_TEAM database_session.close()
def setUp(self): add_hitter_entry() add_pitcher_entry() database_session = MlbDatabase(DB_PATH).open_session() entry = GameEntry(date.today(), date.today().ctime(), 'SD', 'BOS') database_session.add(entry) database_session.commit() database_session.close()
def runTest(self): database_session = MlbDatabase(DB_PATH).open_session() starting_pitcher_1 = PitcherEntry('Andrew', 'Cashner', '10468') starting_pitcher_1.baseball_reference_id = 'cashnan01' starting_pitcher_1.home_team = 'MIA' starting_pitcher_1.pitching_hand = 'R' database_session.add(starting_pitcher_1) database_session.commit() database_session.close()
def add_hitter_entry(): database_session = MlbDatabase(DB_PATH).open_session() hitter = HitterEntry('Wil', 'Myers', '10972') hitter.baseball_reference_id = 'myerswi01' hitter.team = 'SD' hitter.batting_hand = 'R' database_session.add(hitter) database_session.commit() database_session.close()
def runTest(self): database_session = MlbDatabase(DB_PATH).open_session() entry = PregameHitterGameEntry() entry.rotowire_id = '10972' entry.game_date = date.today() entry.game_time = date.today().ctime() entry.home_team = CommitNewPregameHitterTest.HOME_TEAM database_session.add(entry) database_session.commit() database_session.close()
def get_opponent_vector(self): database_session = MlbDatabase().open_session() # Get the hitters he is facing as well hitter_postgame_entries = database_session.query( PregameHitterGameEntry).filter( PregameHitterGameEntry.game_date == self.game_date, PregameHitterGameEntry.game_time == self.game_time, PregameHitterGameEntry.home_team == self.home_team, PregameHitterGameEntry.is_home_team != self.is_home_team) hitter_array = np.array(np.zeros(31)) for hitter_entry in hitter_postgame_entries: hitter_array += hitter_entry.to_input_vector_raw() database_session.close() return PregameHitterGameEntry.avg_input_vector(hitter_array)
def get_pregame_hitting_stats_wrapper(game): database_session = MlbDatabase().open_session() for current_hitter in game.away_lineup: pitcher_hand = game.home_pitcher.hand print "Mining %s." % current_hitter.name try: pregame_hitter_entry = get_hitter_stats( current_hitter.rotowire_id, game.home_pitcher.rotowire_id, current_hitter.team, pitcher_hand, database_session) pregame_hitter_entry.game_date = date.today() pregame_hitter_entry.opposing_team = game.home_pitcher.team predict_draftkings_points(pregame_hitter_entry) database_session.add(pregame_hitter_entry) database_session.commit() except HitterNotFound as e: print e except IntegrityError: print "Attempt to duplicate hitter entry: %s %s %s" % ( current_hitter.name, pregame_hitter_entry.team, pregame_hitter_entry.opposing_team) database_session.rollback() for current_hitter in game.home_lineup: pitcher_hand = game.away_pitcher.hand print "Mining %s." % current_hitter.name try: pregame_hitter_entry = get_hitter_stats( current_hitter.rotowire_id, game.away_pitcher.rotowire_id, current_hitter.team, pitcher_hand, database_session) pregame_hitter_entry.game_date = date.today() pregame_hitter_entry.opposing_team = game.away_pitcher.team predict_draftkings_points(pregame_hitter_entry) database_session.add(pregame_hitter_entry) database_session.commit() except HitterNotFound as e: print e except IntegrityError: print "Attempt to duplicate hitter entry: %s %s %s" % ( current_hitter.name, pregame_hitter_entry.team, pregame_hitter_entry.opposing_team) database_session.rollback() database_session.close()
def get_pregame_pitching_stats_wrapper(game): database_session = MlbDatabase().open_session() current_pitcher = game.away_pitcher print "Mining %s." % current_pitcher.name try: pregame_pitcher_entry = get_pitcher_stats(current_pitcher.rotowire_id, current_pitcher.team, game.home_pitcher.team, database_session) predict_draftkings_points(pregame_pitcher_entry) database_session.add(pregame_pitcher_entry) database_session.commit() except IntegrityError: print "Attempt to duplicate pitcher entry: %s %s %s" % ( current_pitcher.name, pregame_pitcher_entry.team, pregame_pitcher_entry.opposing_team) database_session.rollback() except PitcherNotFound as e: print e current_pitcher = game.home_pitcher print "Mining %s." % current_pitcher.name try: pregame_pitcher_entry = get_pitcher_stats(current_pitcher.rotowire_id, current_pitcher.team, game.away_pitcher.team, database_session) predict_draftkings_points(pregame_pitcher_entry) database_session.add(pregame_pitcher_entry) database_session.commit() except IntegrityError: print "Attempt to duplicate pitcher entry: %s %s %s" % ( current_pitcher.name, pregame_pitcher_entry.team, pregame_pitcher_entry.opposing_team) database_session.rollback() except PitcherNotFound as e: print e database_session.close()
def runTest(self): database_session = MlbDatabase(DB_PATH).open_session() lineup = LineupEntry() lineup.starting_pitcher_1 = '10468' lineup.starting_pitcher_2 = '9374' lineup.catcher = '8047' lineup.first_baseman = '8620' lineup.second_baseman = '6508' lineup.third_baseman = '9862' lineup.shortstop = '11437' lineup.outfielder_1 = '7140' lineup.outfielder_2 = '13190' lineup.outfielder_3 = '7618' lineup.game_date = date.today() lineup.game_time = date.today().ctime() database_session.add(lineup) database_session.commit() database_session.close()
def add_hitter_entries(): """ Just add some hitter entries to the test database to satisfy foreign key constraints """ database_session = MlbDatabase(DB_PATH).open_session() catcher = HitterEntry('Russell', 'Martin', '8047') database_session.add(catcher) first_baseman = HitterEntry('Ryan', 'Zimmerman', '8620') database_session.add(first_baseman) second_baseman = HitterEntry('Chase', 'Utley', '6508') database_session.add(second_baseman) third_baseman = HitterEntry('Josh', 'Donaldson', '9862') database_session.add(third_baseman) shortstop = HitterEntry('Manny', 'Machado', '11437') database_session.add(shortstop) outfielder_1 = HitterEntry('Melvin', 'Upton Jr.', '7140') database_session.add(outfielder_1) outfielder_2 = HitterEntry('Jose', 'Peraza', '13190') database_session.add(outfielder_2) outfielder_3 = HitterEntry('Nick', 'Markakis', '7618') database_session.add(outfielder_3) database_session.commit() database_session.close()
from mine.beautiful_soup_helper import get_soup_from_url from datetime import date, timedelta from sqlalchemy.exc import IntegrityError from sqlalchemy.orm.exc import FlushError import datetime from sql.umpire import UmpireCareerEntry from mine.baseball_reference import get_team_info from mine.team_dict import * import re from bs4 import Comment from sql.team_park import ParkEntry from sqlalchemy import or_, and_ base_url = "http://gd2.mlb.com/components/game/mlb/year_2017/month_" database_session = MlbDatabase().open_session() def get_game_day_urls(game_date): game_urls = list() day_url = base_url + '%02d' % game_date.month + "/" + "day_" + '%02d' % game_date.day soup = get_soup_from_url(day_url) game_links = soup.findAll("a") for game_link in game_links: game_string = str(game_link.text).strip() if game_string.startswith("gid"): game_string = day_url + "/" + game_string + "linescore.xml" game_urls.append(game_string) print game_string return game_urls
def __init__(self): self._database_session = MlbDatabase().open_session() self._decision_tree = None
def __init__(self): self._decision_tree = DecisionTreeRegressor() self._database_session = MlbDatabase().open_session()
from sql.mlb_database import MlbDatabase from email_service import send_email from mine.stat_miner import LineupMiner try: mlbDatabase = MlbDatabase() lineup_miner = LineupMiner(lineup=None, opposing_pitcher=None, game_date=None, game_time=None, db_path=None, is_home=False) lineup_miner.mine_yesterdays_results() send_email("Mine postgame completed.") except Exception as e: print e send_email("The predictor generated an exception: {0}".format(e))