ongks1999 commited on
Commit
3a99be5
Β·
1 Parent(s): eeb21c9

edits to make_dataclass

Browse files
Files changed (1) hide show
  1. src/display/utils.py +7 -11
src/display/utils.py CHANGED
@@ -1,9 +1,8 @@
1
- from dataclasses import dataclass, make_dataclass
2
 
3
  """ adapted from original template, where unnecessary code was removed
4
  util.py is used for defining our fixed columns, which will be referenced to from app.py
5
- dataclass was used to ensure our changes made are reflected across all instances
6
- our metric columns are added dynamically, as not all json files have same eval methods used"""
7
 
8
  def fields(raw_class):
9
  return [v for k, v in raw_class.__dict__.items() if k[:2] != "__" and k[-2:] != "__"]
@@ -17,14 +16,11 @@ class ColumnContent:
17
  never_hidden: bool = False
18
 
19
  ## Leaderboard columns
20
- auto_eval_column_dict = []
21
- # Init the fixed columns, eval methods and their results is added dynamically, different runs have different num of results
22
- auto_eval_column_dict.append(["run_id", ColumnContent, ColumnContent("run_id", "str", True, never_hidden=True)])
23
- auto_eval_column_dict.append(["technique", ColumnContent, ColumnContent("technique", "str", True, never_hidden=True)])
24
-
25
- # list is converted to dataclass
26
- AutoEvalColumn = make_dataclass("AutoEvalColumn", auto_eval_column_dict, frozen=True)
27
- # the list is converted into a class, each element in that list, become a class attribute
28
 
29
  # Column selection
30
  COLS = [c.name for c in fields(AutoEvalColumn) if not c.hidden]
 
1
+ from dataclasses import dataclass
2
 
3
  """ adapted from original template, where unnecessary code was removed
4
  util.py is used for defining our fixed columns, which will be referenced to from app.py
5
+ ColumnContent dataclass used to define column properties"""
 
6
 
7
  def fields(raw_class):
8
  return [v for k, v in raw_class.__dict__.items() if k[:2] != "__" and k[-2:] != "__"]
 
16
  never_hidden: bool = False
17
 
18
  ## Leaderboard columns
19
+ # manually create class instead of using make_dataclass as our columns are not built dynamically,
20
+ # the given and known cols are the run id and technique, based on our results json file
21
+ class AutoEvalColumn:
22
+ run_id = ColumnContent("run_id", "str", True, never_hidden= True)
23
+ technique = ColumnContent("technique", "str", True, never_hidden= True)
 
 
 
24
 
25
  # Column selection
26
  COLS = [c.name for c in fields(AutoEvalColumn) if not c.hidden]