from dataclasses import dataclass @dataclass class ColumnContent: name: str type: str displayed_by_default: bool hidden: bool = False def fields(raw_class): return [ v for k, v in raw_class.__dict__.items() if k[:2] != "__" and k[-2:] != "__" ] @dataclass(frozen=True) class AutoEvalColumn: # Auto evals column model = ColumnContent("Model", "markdown", True) average = ColumnContent("Mean", "number", True) std = ColumnContent("Std", "number", True) l_0 = ColumnContent("Computation", "number", True) l_1 = ColumnContent("Network", "number", True) l_2 = ColumnContent("Visualization", "number", True) l_3 = ColumnContent("Basic", "number", True) l_4 = ColumnContent("System", "number", True) l_5 = ColumnContent("Cryptography", "number", True)