Update gameplay_queries.py
Decision bug fixes
This commit is contained in:
parent
3debfd6e82
commit
c98c202224
@ -1002,15 +1002,11 @@ def get_db_ready_decisions(session: Session, this_game: Game, db_game_id: int) -
|
|||||||
logger.info(f'Game {this_game.id} | Appending {play.pitcher.player.name_with_desc} to blown saves on play #{play.play_num}')
|
logger.info(f'Game {this_game.id} | Appending {play.pitcher.player.name_with_desc} to blown saves on play #{play.play_num}')
|
||||||
b_save.append(play.pitcher)
|
b_save.append(play.pitcher)
|
||||||
|
|
||||||
elif play.home_score > play.away_score and play.home_score - play.away_score <= 3 and home_pitcher != home_starter and play.inning_num + 2 >= final_inning:
|
elif play.home_score > play.away_score and play.home_score - play.away_score <= 3 and home_pitcher != home_starter and play.inning_num >= final_inning - 2:
|
||||||
logger.info(f'Game {this_game.id} | Setting {play.pitcher.player.name_with_desc} to save on play #{play.play_num}')
|
logger.info(f'Game {this_game.id} | Setting {play.pitcher.player.name_with_desc} to save on play #{play.play_num}')
|
||||||
save = home_pitcher
|
save = home_pitcher
|
||||||
|
|
||||||
elif play.inning_half == 'bot':
|
elif play.inning_half == 'bot':
|
||||||
if away_starter is None:
|
|
||||||
logger.info(f'Game {this_game.id} | Setting away starter to {play.pitcher.player.name_with_desc} on play #{play.play_num}')
|
|
||||||
away_starter = play.pitcher
|
|
||||||
|
|
||||||
if away_finisher is None:
|
if away_finisher is None:
|
||||||
logger.info(f'Game {this_game.id} | Setting away finisher to {play.pitcher.player.name_with_desc} on play #{play.play_num}')
|
logger.info(f'Game {this_game.id} | Setting away finisher to {play.pitcher.player.name_with_desc} on play #{play.play_num}')
|
||||||
away_finisher = play.pitcher
|
away_finisher = play.pitcher
|
||||||
@ -1029,6 +1025,10 @@ def get_db_ready_decisions(session: Session, this_game: Game, db_game_id: int) -
|
|||||||
logger.info(f'Game {this_game.id} | Appending {play.pitcher.player.name_with_desc} to blown saves on play #{play.play_num}')
|
logger.info(f'Game {this_game.id} | Appending {play.pitcher.player.name_with_desc} to blown saves on play #{play.play_num}')
|
||||||
b_save.append(play.pitcher)
|
b_save.append(play.pitcher)
|
||||||
|
|
||||||
|
elif play.away_score > play.home_score and play.away_score - play.home_score <= 3 and away_pitcher != away_starter and play.inning_num >= final_inning - 2:
|
||||||
|
logger.info(f'Game {this_game.id} | Setting {play.pitcher.player.name_with_desc} to save on play #{play.play_num}')
|
||||||
|
save = away_pitcher
|
||||||
|
|
||||||
if play.is_go_ahead:
|
if play.is_go_ahead:
|
||||||
run_diff = play.home_score - play.away_score
|
run_diff = play.home_score - play.away_score
|
||||||
for x in [play.on_first_final, play.on_second_final, play.on_third_final, play.batter_final]:
|
for x in [play.on_first_final, play.on_second_final, play.on_third_final, play.batter_final]:
|
||||||
@ -1090,19 +1090,35 @@ def get_db_ready_decisions(session: Session, this_game: Game, db_game_id: int) -
|
|||||||
pitcher_team_id=play.pitcher.team_id
|
pitcher_team_id=play.pitcher.team_id
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# After the play loop, determine winner/loser from final game state if still None
|
||||||
|
final_play = session.exec(select(Play).where(Play.game == this_game).order_by(Play.play_num.desc())).first()
|
||||||
if winner is None:
|
if winner is None:
|
||||||
logger.info(f'Setting winner to last_winner: {last_winner}')
|
if final_play.home_score > final_play.away_score:
|
||||||
winner = last_winner
|
winner = home_finisher
|
||||||
|
logger.info(f'Setting winner to home_finisher: {winner}')
|
||||||
|
else:
|
||||||
|
winner = away_finisher
|
||||||
|
logger.info(f'Setting winner to away_finisher: {winner}')
|
||||||
if loser is None:
|
if loser is None:
|
||||||
logger.info(f'Setting loser to last_loser: {last_loser}')
|
if final_play.home_score > final_play.away_score:
|
||||||
loser = last_loser
|
loser = away_finisher
|
||||||
|
logger.info(f'Setting loser to away_finisher: {loser}')
|
||||||
|
else:
|
||||||
|
loser = home_finisher
|
||||||
|
logger.info(f'Setting loser to home_finisher: {loser}')
|
||||||
|
|
||||||
logger.info(f'winner: {winner} / loser: {loser}')
|
logger.info(f'winner: {winner} / loser: {loser}')
|
||||||
|
if winner is not None:
|
||||||
decisions[winner.player_id].win = 1
|
decisions[winner.player_id].win = 1
|
||||||
|
if loser is not None:
|
||||||
decisions[loser.player_id].loss = 1
|
decisions[loser.player_id].loss = 1
|
||||||
|
if away_starter is not None:
|
||||||
decisions[away_starter.player_id].is_start = True
|
decisions[away_starter.player_id].is_start = True
|
||||||
|
if home_starter is not None:
|
||||||
decisions[home_starter.player_id].is_start = True
|
decisions[home_starter.player_id].is_start = True
|
||||||
|
if away_finisher is not None:
|
||||||
decisions[away_finisher.player_id].game_finished = 1
|
decisions[away_finisher.player_id].game_finished = 1
|
||||||
|
if home_finisher is not None:
|
||||||
decisions[home_finisher.player_id].game_finished = 1
|
decisions[home_finisher.player_id].game_finished = 1
|
||||||
|
|
||||||
for lineup in holds:
|
for lineup in holds:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user