CompileError Claude Opus 4.6 commited on
Commit
d8ffffa
·
1 Parent(s): 527f68e

fix: use default_factory for mutable defaults in dataclasses for Python 3.13

Browse files

Python 3.13 disallows mutable default values in dataclasses. Changed
ColumnContent instances to use field(default_factory=...) in both
make_dataclass and EvalQueueColumn.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Files changed (1) hide show
  1. src/display/utils.py +20 -20
src/display/utils.py CHANGED
@@ -1,4 +1,4 @@
1
- from dataclasses import dataclass, make_dataclass
2
  from enum import Enum
3
 
4
  from src.about import Tasks
@@ -23,22 +23,22 @@ class ColumnContent:
23
  ## Leaderboard columns
24
  auto_eval_column_dict = []
25
  # Init
26
- auto_eval_column_dict.append(["model_type_symbol", ColumnContent, ColumnContent("T", "str", True, never_hidden=True)])
27
- auto_eval_column_dict.append(["model", ColumnContent, ColumnContent("Model", "markdown", True, never_hidden=True)])
28
  # Scores
29
- auto_eval_column_dict.append(["average", ColumnContent, ColumnContent("Average ⬆️", "number", True)])
30
  for task in Tasks:
31
- auto_eval_column_dict.append([task.name, ColumnContent, ColumnContent(task.value.col_name, "number", True)])
32
  # Model information
33
- auto_eval_column_dict.append(["model_type", ColumnContent, ColumnContent("Type", "str", False)])
34
- auto_eval_column_dict.append(["architecture", ColumnContent, ColumnContent("Architecture", "str", False)])
35
- auto_eval_column_dict.append(["weight_type", ColumnContent, ColumnContent("Weight type", "str", False, True)])
36
- auto_eval_column_dict.append(["precision", ColumnContent, ColumnContent("Precision", "str", False)])
37
- auto_eval_column_dict.append(["license", ColumnContent, ColumnContent("Hub License", "str", False)])
38
- auto_eval_column_dict.append(["params", ColumnContent, ColumnContent("#Params (B)", "number", False)])
39
- auto_eval_column_dict.append(["likes", ColumnContent, ColumnContent("Hub ❤️", "number", False)])
40
- auto_eval_column_dict.append(["still_on_hub", ColumnContent, ColumnContent("Available on the hub", "bool", False)])
41
- auto_eval_column_dict.append(["revision", ColumnContent, ColumnContent("Model sha", "str", False, False)])
42
 
43
  # We use make dataclass to dynamically fill the scores from Tasks
44
  AutoEvalColumn = make_dataclass("AutoEvalColumn", auto_eval_column_dict)
@@ -47,12 +47,12 @@ AutoEvalColumn = make_dataclass("AutoEvalColumn", auto_eval_column_dict)
47
  ## For the queue columns in the submission tab
48
  @dataclass
49
  class EvalQueueColumn: # Queue column
50
- model = ColumnContent("model", "markdown", True)
51
- revision = ColumnContent("revision", "str", True)
52
- private = ColumnContent("private", "bool", True)
53
- precision = ColumnContent("precision", "str", True)
54
- weight_type = ColumnContent("weight_type", "str", "Original")
55
- status = ColumnContent("status", "str", True)
56
 
57
 
58
  ## All the model information that we might need
 
1
+ from dataclasses import dataclass, field, make_dataclass
2
  from enum import Enum
3
 
4
  from src.about import Tasks
 
23
  ## Leaderboard columns
24
  auto_eval_column_dict = []
25
  # Init
26
+ auto_eval_column_dict.append(["model_type_symbol", ColumnContent, field(default_factory=lambda: ColumnContent("T", "str", True, never_hidden=True))])
27
+ auto_eval_column_dict.append(["model", ColumnContent, field(default_factory=lambda: ColumnContent("Model", "markdown", True, never_hidden=True))])
28
  # Scores
29
+ auto_eval_column_dict.append(["average", ColumnContent, field(default_factory=lambda: ColumnContent("Average ⬆️", "number", True))])
30
  for task in Tasks:
31
+ auto_eval_column_dict.append([task.name, ColumnContent, field(default_factory=lambda t=task: ColumnContent(t.value.col_name, "number", True))])
32
  # Model information
33
+ auto_eval_column_dict.append(["model_type", ColumnContent, field(default_factory=lambda: ColumnContent("Type", "str", False))])
34
+ auto_eval_column_dict.append(["architecture", ColumnContent, field(default_factory=lambda: ColumnContent("Architecture", "str", False))])
35
+ auto_eval_column_dict.append(["weight_type", ColumnContent, field(default_factory=lambda: ColumnContent("Weight type", "str", False, True))])
36
+ auto_eval_column_dict.append(["precision", ColumnContent, field(default_factory=lambda: ColumnContent("Precision", "str", False))])
37
+ auto_eval_column_dict.append(["license", ColumnContent, field(default_factory=lambda: ColumnContent("Hub License", "str", False))])
38
+ auto_eval_column_dict.append(["params", ColumnContent, field(default_factory=lambda: ColumnContent("#Params (B)", "number", False))])
39
+ auto_eval_column_dict.append(["likes", ColumnContent, field(default_factory=lambda: ColumnContent("Hub ❤️", "number", False))])
40
+ auto_eval_column_dict.append(["still_on_hub", ColumnContent, field(default_factory=lambda: ColumnContent("Available on the hub", "bool", False))])
41
+ auto_eval_column_dict.append(["revision", ColumnContent, field(default_factory=lambda: ColumnContent("Model sha", "str", False, False))])
42
 
43
  # We use make dataclass to dynamically fill the scores from Tasks
44
  AutoEvalColumn = make_dataclass("AutoEvalColumn", auto_eval_column_dict)
 
47
  ## For the queue columns in the submission tab
48
  @dataclass
49
  class EvalQueueColumn: # Queue column
50
+ model: ColumnContent = field(default_factory=lambda: ColumnContent("model", "markdown", True))
51
+ revision: ColumnContent = field(default_factory=lambda: ColumnContent("revision", "str", True))
52
+ private: ColumnContent = field(default_factory=lambda: ColumnContent("private", "bool", True))
53
+ precision: ColumnContent = field(default_factory=lambda: ColumnContent("precision", "str", True))
54
+ weight_type: ColumnContent = field(default_factory=lambda: ColumnContent("weight_type", "str", "Original"))
55
+ status: ColumnContent = field(default_factory=lambda: ColumnContent("status", "str", True))
56
 
57
 
58
  ## All the model information that we might need