Merge pull request 'fix: use max() for pitcher OPS split weighting (#6)' (#60) from ai/paper-dynasty-database#6 into next-release
Some checks failed
Build Docker Image / build (push) Failing after 5m11s

Reviewed-on: #60
This commit is contained in:
cal 2026-03-10 14:42:59 +00:00
commit a66ef9bd7c

View File

@ -617,8 +617,9 @@ def sort_pitchers(pitching_card_query) -> DataFrame | None:
return float("inf") return float("inf")
ops_vl = vlval.obp + vlval.slg ops_vl = vlval.obp + vlval.slg
ops_vr = vrval.obp + vrval.slg ops_vr = vrval.obp + vrval.slg
# TODO: should this be max?? # Weight the weaker split (higher OPS allowed) so platoon weaknesses are penalized.
return (ops_vr + ops_vl + min(ops_vl, ops_vr)) / 3 # Starters face both LHH and RHH, so vulnerability against either hand matters.
return (ops_vr + ops_vl + max(ops_vl, ops_vr)) / 3
pitcher_df["total_ops"] = pitcher_df.apply(get_total_ops, axis=1) pitcher_df["total_ops"] = pitcher_df.apply(get_total_ops, axis=1)
return pitcher_df.sort_values(by="total_ops") return pitcher_df.sort_values(by="total_ops")
@ -699,7 +700,8 @@ async def get_team_sp(
return float("inf") return float("inf")
ops_vl = vlval.obp + vlval.slg ops_vl = vlval.obp + vlval.slg
ops_vr = vrval.obp + vrval.slg ops_vr = vrval.obp + vrval.slg
return (ops_vr + ops_vl + min(ops_vl, ops_vr)) / 3 # Weight the weaker split (higher OPS allowed) so platoon weaknesses are penalized.
return (ops_vr + ops_vl + max(ops_vl, ops_vr)) / 3
starter_df["total_ops"] = starter_df.apply(get_total_ops, axis=1) starter_df["total_ops"] = starter_df.apply(get_total_ops, axis=1)
return starter_df.sort_values(by="total_ops") return starter_df.sort_values(by="total_ops")