Spaces:
Running
Running
Commit
·
ebaf220
1
Parent(s):
ac9071c
Separate min IP and qualified IP in pitcher leaderboard for API compatibility
Browse files- pitcher_leaderboard.py +11 -8
pitcher_leaderboard.py
CHANGED
|
@@ -38,19 +38,21 @@ notes = '''**Limitations**
|
|
| 38 |
'''
|
| 39 |
|
| 40 |
|
| 41 |
-
def gr_create_pitcher_leaderboard(start_date, end_date, min_ip, pitcher_lr='Both', batter_lr='Both', include_teams=None):
|
| 42 |
assert pitcher_lr in ['Both', 'Left', 'Right']
|
| 43 |
|
| 44 |
data = data_df.filter(pl.col('ballKind_code') != '-')
|
| 45 |
|
| 46 |
data = filter_data_by_date_and_game_kind(data, start_date=start_date, end_date=end_date, game_kind='Regular Season')
|
| 47 |
-
|
|
|
|
|
|
|
| 48 |
pitcher_stats = (
|
| 49 |
compute_player_stats(
|
| 50 |
data, player_type='pitcher',
|
| 51 |
pitcher_lr='both' if pitcher_lr=='Both' else pitcher_lr[0].lower(),
|
| 52 |
batter_lr='both' if batter_lr == 'Both' else batter_lr[0].lower(),
|
| 53 |
-
min_ip=min_ip,
|
| 54 |
group_by_team=True
|
| 55 |
)
|
| 56 |
.filter(pl.col('qualified'))
|
|
@@ -118,7 +120,7 @@ def create_pitcher_leaderboard():
|
|
| 118 |
end_date = gr.DateTime(end_datetime_init, include_time=False, type='datetime', label='End')
|
| 119 |
with gr.Row():
|
| 120 |
with gr.Group():
|
| 121 |
-
min_ip_state = gr.State('qualified')
|
| 122 |
min_ip = gr.Number(100, label='Min. IP', precision=0, minimum=0, interactive=False)
|
| 123 |
qualified = gr.Checkbox(True, label='Qualified')
|
| 124 |
with gr.Group():
|
|
@@ -141,11 +143,12 @@ def create_pitcher_leaderboard():
|
|
| 141 |
|
| 142 |
gr.Markdown(notes)
|
| 143 |
|
| 144 |
-
search.click(gr_create_pitcher_leaderboard, inputs=[start_date, end_date,
|
| 145 |
all_teams.click(lambda _teams : [] if _teams == TEAMS else TEAMS, inputs=include_teams, outputs=include_teams)
|
| 146 |
-
min_ip_state_kwargs = dict(fn=lambda min_ip, qualified: ('qualified' if qualified else min_ip, gr.Number(interactive=not qualified)), inputs=[min_ip, qualified], outputs=[min_ip_state, min_ip])
|
| 147 |
-
min_ip.change(**min_ip_state_kwargs)
|
| 148 |
-
qualified.change(**min_ip_state_kwargs)
|
|
|
|
| 149 |
# pin_columns.input(
|
| 150 |
# lambda _pin_columns : gr.update(pinned_columns=None if _pin_columns else 3),
|
| 151 |
# inputs=pin_columns,
|
|
|
|
| 38 |
'''
|
| 39 |
|
| 40 |
|
| 41 |
+
def gr_create_pitcher_leaderboard(start_date, end_date, min_ip, qualified, pitcher_lr='Both', batter_lr='Both', include_teams=None):
|
| 42 |
assert pitcher_lr in ['Both', 'Left', 'Right']
|
| 43 |
|
| 44 |
data = data_df.filter(pl.col('ballKind_code') != '-')
|
| 45 |
|
| 46 |
data = filter_data_by_date_and_game_kind(data, start_date=start_date, end_date=end_date, game_kind='Regular Season')
|
| 47 |
+
|
| 48 |
+
# typically "qualified" should be a valid input for min_ip for the current function,
|
| 49 |
+
# but we separate it from a numerical min_ip argument for API compabtibility
|
| 50 |
pitcher_stats = (
|
| 51 |
compute_player_stats(
|
| 52 |
data, player_type='pitcher',
|
| 53 |
pitcher_lr='both' if pitcher_lr=='Both' else pitcher_lr[0].lower(),
|
| 54 |
batter_lr='both' if batter_lr == 'Both' else batter_lr[0].lower(),
|
| 55 |
+
min_ip='qualified' if qualified else min_ip,
|
| 56 |
group_by_team=True
|
| 57 |
)
|
| 58 |
.filter(pl.col('qualified'))
|
|
|
|
| 120 |
end_date = gr.DateTime(end_datetime_init, include_time=False, type='datetime', label='End')
|
| 121 |
with gr.Row():
|
| 122 |
with gr.Group():
|
| 123 |
+
# min_ip_state = gr.State('qualified')
|
| 124 |
min_ip = gr.Number(100, label='Min. IP', precision=0, minimum=0, interactive=False)
|
| 125 |
qualified = gr.Checkbox(True, label='Qualified')
|
| 126 |
with gr.Group():
|
|
|
|
| 143 |
|
| 144 |
gr.Markdown(notes)
|
| 145 |
|
| 146 |
+
search.click(gr_create_pitcher_leaderboard, inputs=[start_date, end_date, min_ip, qualified, pitcher_lr, batter_lr, include_teams], outputs=leaderboard)
|
| 147 |
all_teams.click(lambda _teams : [] if _teams == TEAMS else TEAMS, inputs=include_teams, outputs=include_teams)
|
| 148 |
+
# min_ip_state_kwargs = dict(fn=lambda min_ip, qualified: ('qualified' if qualified else min_ip, gr.Number(interactive=not qualified)), inputs=[min_ip, qualified], outputs=[min_ip_state, min_ip])
|
| 149 |
+
# min_ip.change(**min_ip_state_kwargs)
|
| 150 |
+
# qualified.change(**min_ip_state_kwargs)
|
| 151 |
+
qualified.change(lambda qualified: gr.Number(interactive=not qualified), inputs=qualified, outputs=min_ip)
|
| 152 |
# pin_columns.input(
|
| 153 |
# lambda _pin_columns : gr.update(pinned_columns=None if _pin_columns else 3),
|
| 154 |
# inputs=pin_columns,
|