def __init__(self, player_name, player_code, game_num, use_memory=True): con = MemoryDB.get_con(use_memory) cur = con.cursor() #print(player_name) cur.execute( """select sum(pa),sum(runs),sum(hits),sum(doubles),sum(triples),sum(homeruns),sum(rbi),sum(stolen_base), sum(caught_stealing),sum(walks),sum(strikeouts),sum(hit_by_pitch),sum(sacfly) from batter where player_name=? and game < ? and season=?""", (player_name, game_num, ENV.YEAR)) attr = cur.fetchone() # print(attr[0]) if attr[0] is None: attr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # if(len(attr)==NUM_OF_BATTER_ARGS): self.name = player_name self.code = player_code self.atbat = int(attr[0]) self.runs = int(attr[1]) self.hits = int(attr[2]) self.doubles = int(attr[3]) self.triples = int(attr[4]) self.hr = int(attr[5]) self.singles = self.hits - self.hr - self.triples - self.doubles self.rbi = int(attr[6]) self.sb = int(attr[7]) self.cs = int(attr[8]) self.walks = int(attr[9]) self.strikeout = int(attr[10]) self.hbp = int(attr[11]) self.sacfly = int(attr[12]) self.defense = 90 if (self.atbat > 0): self.obp = float(self.hits + self.walks + self.hbp) / float( self.atbat + self.walks + self.hbp + self.sacfly) else: self.obp = 0 if (self.atbat > 0): self.avg = int(float(self.hits) / float(self.atbat) * 1000) else: self.avg = 0 self.atbat = 1 cur.execute( """select sum(ab),sum(hits),sum(runs),sum(doubles),sum(triples),sum(homeruns), sum(walks) from batter where player_code=? and season=2012""", [player_code]) row = cur.fetchone() self.prev_hits = 0 self.prev_runs = 0 self.prev_doubles = 0 self.prev_triples = 0 self.prev_hr = 0 self.prev_walks = 0 self.prev_singles = 0 if row is not None and row[2] is not None: self.prev_atbat = row[0] self.prev_hits = row[1] self.prev_runs = row[2] self.prev_doubles = row[3] self.prev_triples = row[4] self.prev_hr = row[5] self.prev_walks = row[6] self.prev_singles = self.prev_hits - self.prev_doubles - self.prev_triples - self.prev_hr else: self.prev_atbat = 0 self.gameStats = [0, 0, 0, 0, 0, 0, 0, 0]
logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG, ) logger = logging.getLogger(__name__) # NUM_OF_GAMES=10000000 # NUM_OF_GAMES=2703600 if sys.argv[2] is not None: NUM_OF_GAMES = int(sys.argv[2]) else: NUM_OF_GAMES = 10 logger.info('Starting baseball Simulator Run All') con = MemoryDB.get_con() cur = con.cursor() allGames = [] xml = open(sys.argv[1], 'r') allXML = ET.parse(xml) for game in allXML.iter('game'): preDate = sys.argv[1][-8:][:4] print("{}".format(preDate)) day = preDate[2:] if day.startswith('0'): day = day[-1:] MONTH_INDEX = ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] date = MONTH_INDEX[int(preDate[:-2])] + day #print(date)
def __init__(self, player_name, player_code, game_num, use_memory=True): con = MemoryDB.get_con(use_memory) cur = con.cursor() #print(player_name) cur.execute( """select sum(ip),sum(hits),sum(doubles),sum(triples),sum(homeruns),sum(er),sum(walks),sum(strikeouts), sum(batters_faced),sum(pitch_count),sum(strikes),sum(groundouts),sum(fly_balls),sum(line_drives), sum(hit_by_pitch) from pitcher where player_name=? and game < ?""", (player_name, game_num)) attr = cur.fetchone() cur.execute("select rest_days,entered,excited from pitcher where player_code=? and game=?;", (player_code, game_num)) info = cur.fetchone() if attr[9] is None or attr is None: info = [1, 1, 1] if attr[9] is None or attr is None: print("Defaulting to 1s") attr = [1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1] #print(attr) self.name = player_name self.code = player_code self.rest = info[0] self.ip = attr[0] self.hits = attr[1] self.doubles = attr[2] self.triples = attr[3] self.homeruns = attr[4] self.singles = self.hits - self.homeruns - self.triples - self.doubles self.er = attr[5] self.walks = attr[6] self.strikeouts = attr[7] self.batters_faced = attr[8] self.pitch_count = attr[9] self.strikes = attr[10] self.groundouts = attr[11] self.fly_balls = attr[12] self.line_drives = attr[13] self.hit_by_pitch = attr[14] self.obpa = float((self.hits + self.walks + self.hit_by_pitch) / self.batters_faced) #print("hits:", self.hits) #print("walks:", self.walks) #print("hbp:", self.hit_by_pitch) #print("batters_faced:", self.batters_faced) self.entered = info[1] self.exited = info[2] # cur.execute("select bfp,h,hr,bb from pitcher where playerID=? and season=2012",[player_code]) cur.execute( "select sum(batters_faced),sum(hits),sum(homeruns),sum(walks) from pitcher where player_code=? and season=2012", [player_code]) row = cur.fetchone() self.prev_batters_faced = 0 self.prev_hits = 0 self.prev_homeruns = 0 self.prev_walks = 0 if row is not None and row[0] is not None: self.prev_batters_faced = row[0] self.prev_hits = row[1] self.prev_homeruns = row[2] self.prev_walks = row[3] else: cur.execute( "select sum(batters_faced),sum(hits),sum(homeruns),sum(walks) from pitcher where player_code=? and season=2011", [player_code]) row = cur.fetchone() if row is None or row[0] is None: row = [0, 0, 0, 0] self.prev_hits = row[1] self.prev_homeruns = row[2] self.prev_walks = row[3] self.prev_batters_faced = row[0]