Nicolas Wagner commited on
Commit
4be69f1
·
1 Parent(s): d244f6d

handling empty dataframes

Browse files
Files changed (1) hide show
  1. app.py +26 -10
app.py CHANGED
@@ -90,37 +90,53 @@ def init_leaderboard(dataframe):
90
  interactive=False,
91
  )
92
 
 
 
 
 
 
93
  column_to_type = {c.name: c.type for c in team_columns}
94
  datatypes = [column_to_type.get(col, "str") for col in dataframe.columns]
95
 
96
  default_selection = [
97
- c.name
98
  for c in team_columns
99
- if getattr(c, "displayed_by_default", False) and c.name and c.name in dataframe.columns
100
  ]
 
101
  cant_deselect = [
102
- c.name for c in team_columns if getattr(c, "never_hidden", False) and c.name and c.name in dataframe.columns
 
 
103
  ]
 
104
  hide_cols = [
105
- c.name for c in team_columns if getattr(c, "hidden", False) and c.name and c.name in dataframe.columns
 
 
106
  ]
107
 
108
  search_cols = []
109
  if hasattr(TeamColumn, "team_name") and hasattr(TeamColumn.team_name, "name"):
110
  search_col_name = TeamColumn.team_name.name
111
- if search_col_name and search_col_name in dataframe.columns:
112
- search_cols = [search_col_name]
 
 
 
 
 
113
 
114
  return Leaderboard(
115
  value=dataframe,
116
  datatype=datatypes,
117
  select_columns=SelectColumns(
118
- default_selection=default_selection,
119
- cant_deselect=cant_deselect,
120
  label="Select Columns to Display:",
121
  ),
122
- search_columns=search_cols,
123
- hide_columns=hide_cols,
124
  filter_columns=[],
125
  interactive=False,
126
  )
 
90
  interactive=False,
91
  )
92
 
93
+ missing_cols = [col for col in COLS if col not in dataframe.columns]
94
+ if missing_cols:
95
+ for col in missing_cols:
96
+ dataframe[col] = None
97
+
98
  column_to_type = {c.name: c.type for c in team_columns}
99
  datatypes = [column_to_type.get(col, "str") for col in dataframe.columns]
100
 
101
  default_selection = [
102
+ str(c.name)
103
  for c in team_columns
104
+ if getattr(c, "displayed_by_default", False) and c.name is not None and str(c.name) in dataframe.columns
105
  ]
106
+
107
  cant_deselect = [
108
+ str(c.name)
109
+ for c in team_columns
110
+ if getattr(c, "never_hidden", False) and c.name is not None and str(c.name) in dataframe.columns
111
  ]
112
+
113
  hide_cols = [
114
+ str(c.name)
115
+ for c in team_columns
116
+ if getattr(c, "hidden", False) and c.name is not None and str(c.name) in dataframe.columns
117
  ]
118
 
119
  search_cols = []
120
  if hasattr(TeamColumn, "team_name") and hasattr(TeamColumn.team_name, "name"):
121
  search_col_name = TeamColumn.team_name.name
122
+ if search_col_name is not None and str(search_col_name) in dataframe.columns:
123
+ search_cols = [str(search_col_name)]
124
+
125
+ default_selection = [c for c in default_selection if c is not None]
126
+ cant_deselect = [c for c in cant_deselect if c is not None]
127
+ hide_cols = [c for c in hide_cols if c is not None]
128
+ search_cols = [c for c in search_cols if c is not None]
129
 
130
  return Leaderboard(
131
  value=dataframe,
132
  datatype=datatypes,
133
  select_columns=SelectColumns(
134
+ default_selection=default_selection if default_selection else [],
135
+ cant_deselect=cant_deselect if cant_deselect else [],
136
  label="Select Columns to Display:",
137
  ),
138
+ search_columns=search_cols if search_cols else [],
139
+ hide_columns=hide_cols if hide_cols else [],
140
  filter_columns=[],
141
  interactive=False,
142
  )