Skip to content

Commit e89ed3f

Browse files
committed
Added __repr__
1 parent 17d690f commit e89ed3f

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

openml/tasks/split.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,29 @@ def __init__(
6363
self.folds = len(self.split[0])
6464
self.samples = len(self.split[0][0])
6565

66+
def __repr__(self) -> str:
67+
header = "OpenML Split"
68+
header = f"{header}\n{'=' * len(header)}\n"
69+
70+
fields = {
71+
"Name": self.name,
72+
"Description": (
73+
self.description if len(self.description) <= 80 else self.description[:77] + "..."
74+
),
75+
"Repeats": self.repeats,
76+
"Folds": self.folds,
77+
"Samples": self.samples,
78+
}
79+
80+
order = ["Name", "Description", "Repeats", "Folds", "Samples"]
81+
82+
_fields = [(key, fields[key]) for key in order if key in fields]
83+
84+
longest_field_name_length = max(len(name) for name, _ in _fields)
85+
field_line_format = f"{{:.<{longest_field_name_length}}}: {{}}"
86+
body = "\n".join(field_line_format.format(name, value) for name, value in _fields)
87+
return header + body
88+
6689
def __eq__(self, other: Any) -> bool:
6790
if (
6891
(not isinstance(self, type(other)))

0 commit comments

Comments
 (0)