diff --git a/batters/calcs_batter.py b/batters/calcs_batter.py index 803e249..2eaced5 100644 --- a/batters/calcs_batter.py +++ b/batters/calcs_batter.py @@ -167,14 +167,14 @@ class BattingCardRatingsModel(pydantic.BaseModel): self.groundout_b = self.rem_outs() def calculate_rate_stats(self): - self.avg = mround(round(self.total_hits() / 108, 3)) - self.obp = mround(round((self.total_hits() + self.hbp + self.walk) / 108, 3)) - self.slg = mround(round( + self.avg = mround(self.total_hits() / 108, prec=5, base=0.0001) + self.obp = mround((self.total_hits() + self.hbp + self.walk) / 108, prec=5, base=0.0001) + self.slg = mround(( self.homerun * 4 + self.triple * 3 + self.single_center + self.single_two + self.single_two + - (self.double_two + self.double_three + self.double_two + self.bp_homerun) * 2 + self.bp_single / 2 - )) + (self.double_two + self.double_three + self.double_two + self.bp_homerun) * 2 + self.bp_single / 2) / 108, prec=5, base=0.0001) def custom_to_dict(self): + self.calculate_rate_stats() return { 'battingcard_id': self.battingcard_id, 'vs_hand': self.vs_hand, @@ -202,7 +202,10 @@ class BattingCardRatingsModel(pydantic.BaseModel): 'groundout_c': self.groundout_c, 'pull_rate': self.pull_rate, 'center_rate': self.center_rate, - 'slap_rate': self.slap_rate + 'slap_rate': self.slap_rate, + 'avg': self.avg, + 'obp': self.obp, + 'slg': self.slg } # def total_chances(chance_data): diff --git a/defenders/calcs_defense.py b/defenders/calcs_defense.py index 2dea882..5d325f9 100644 --- a/defenders/calcs_defense.py +++ b/defenders/calcs_defense.py @@ -482,7 +482,7 @@ def hold_pitcher(raw_cs: str, picks: int, season_pct: float) -> str: # return f'{"+" if final_hold >= 0 else ""}{final_hold}' -def pow_ratings(innings: float, gs: int, games: int) -> (int, int): +def pow_ratings(innings: float, gs: int, games: int) -> tuple[int, int]: if innings <= 1 or games <= 1: return 1, 1