From 7b40af6547017214bd8a0b8ebbbf2c7115477703 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Wed, 8 Apr 2026 05:34:01 -0500 Subject: [PATCH] fix: filter variant=0 in scouting queries to exclude boosted stats (#58) Closes #58 Co-Authored-By: Claude Sonnet 4.6 --- pd_cards/core/scouting.py | 20 ++++++++++++++------ scouting_batters.py | 8 ++++++-- scouting_pitchers.py | 8 ++++++-- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/pd_cards/core/scouting.py b/pd_cards/core/scouting.py index 220fb80..0fe9511 100644 --- a/pd_cards/core/scouting.py +++ b/pd_cards/core/scouting.py @@ -160,13 +160,15 @@ async def get_batting_scouting_dfs(cardset_ids: List[int] = None) -> pd.DataFram api_data = await asyncio.gather(*tasks) log_time( "end", - f'Pulled {api_data[0]["count"] + api_data[1]["count"]} batting card ratings and {api_data[2]["count"]} positions', + f"Pulled {api_data[0]['count'] + api_data[1]['count']} batting card ratings and {api_data[2]['count']} positions", start_time=start_time, ) start_time = log_time("start", message="Building base dataframes") - vl_vals = api_data[0]["ratings"] + vl_vals = [ + x for x in api_data[0]["ratings"] if x["battingcard"].get("variant", 0) == 0 + ] for x in vl_vals: x.update(x["battingcard"]) x["player_id"] = x["battingcard"]["player"]["player_id"] @@ -177,7 +179,9 @@ async def get_batting_scouting_dfs(cardset_ids: List[int] = None) -> pd.DataFram del x["battingcard"] del x["player"] - vr_vals = api_data[1]["ratings"] + vr_vals = [ + x for x in api_data[1]["ratings"] if x["battingcard"].get("variant", 0) == 0 + ] for x in vr_vals: x["player_id"] = x["battingcard"]["player"]["player_id"] del x["battingcard"] @@ -571,13 +575,15 @@ async def get_pitching_scouting_dfs(cardset_ids: List[int] = None) -> pd.DataFra api_data = await asyncio.gather(*tasks) log_time( "end", - f'Pulled {api_data[0]["count"] + api_data[1]["count"]} pitching card ratings and {api_data[2]["count"]} positions', + f"Pulled {api_data[0]['count'] + api_data[1]['count']} pitching card ratings and {api_data[2]['count']} positions", start_time=start_time, ) start_time = log_time("start", message="Building base dataframes") - vl_vals = api_data[0]["ratings"] + vl_vals = [ + x for x in api_data[0]["ratings"] if x["pitchingcard"].get("variant", 0) == 0 + ] for x in vl_vals: x.update(x["pitchingcard"]) x["player_id"] = x["pitchingcard"]["player"]["player_id"] @@ -590,7 +596,9 @@ async def get_pitching_scouting_dfs(cardset_ids: List[int] = None) -> pd.DataFra x["closer_rating"] = x["pitchingcard"]["closer_rating"] del x["pitchingcard"], x["player"] - vr_vals = api_data[1]["ratings"] + vr_vals = [ + x for x in api_data[1]["ratings"] if x["pitchingcard"].get("variant", 0) == 0 + ] for x in vr_vals: x["player_id"] = x["pitchingcard"]["player"]["player_id"] del x["pitchingcard"] diff --git a/scouting_batters.py b/scouting_batters.py index 7bb6e90..3c62a20 100644 --- a/scouting_batters.py +++ b/scouting_batters.py @@ -126,7 +126,9 @@ async def get_scouting_dfs(cardset_id: list = None) -> pd.DataFrame: ) start_time = log_time("start", message="Building base dataframes") - vl_vals = api_data[0]["ratings"] + vl_vals = [ + x for x in api_data[0]["ratings"] if x["battingcard"].get("variant", 0) == 0 + ] for x in vl_vals: x.update(x["battingcard"]) x["player_id"] = x["battingcard"]["player"]["player_id"] @@ -137,7 +139,9 @@ async def get_scouting_dfs(cardset_id: list = None) -> pd.DataFrame: del x["battingcard"] del x["player"] - vr_vals = api_data[1]["ratings"] + vr_vals = [ + x for x in api_data[1]["ratings"] if x["battingcard"].get("variant", 0) == 0 + ] for x in vr_vals: x["player_id"] = x["battingcard"]["player"]["player_id"] del x["battingcard"] diff --git a/scouting_pitchers.py b/scouting_pitchers.py index c4122a3..cadec73 100644 --- a/scouting_pitchers.py +++ b/scouting_pitchers.py @@ -34,7 +34,9 @@ async def get_scouting_dfs(cardset_id: list = None): ) start_time = log_time("start", message="Building base dataframes") - vl_vals = api_data[0]["ratings"] + vl_vals = [ + x for x in api_data[0]["ratings"] if x["pitchingcard"].get("variant", 0) == 0 + ] for x in vl_vals: x.update(x["pitchingcard"]) x["player_id"] = x["pitchingcard"]["player"]["player_id"] @@ -47,7 +49,9 @@ async def get_scouting_dfs(cardset_id: list = None): x["closer_rating"] = x["pitchingcard"]["closer_rating"] del x["pitchingcard"], x["player"] - vr_vals = api_data[1]["ratings"] + vr_vals = [ + x for x in api_data[1]["ratings"] if x["pitchingcard"].get("variant", 0) == 0 + ] for x in vr_vals: x["player_id"] = x["pitchingcard"]["player"]["player_id"] del x["pitchingcard"]