patrickramos commited on
Commit
ebaf220
·
1 Parent(s): ac9071c

Separate min IP and qualified IP in pitcher leaderboard for API compatibility

Browse files
Files changed (1) hide show
  1. 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, min_ip_state, pitcher_lr, batter_lr, include_teams], outputs=leaderboard)
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,