Total Complexity | 5 |
Total Lines | 21 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | import pandas as pd |
||
2 | from collections.abc import Sequence |
||
3 | |||
4 | |||
5 | class ResultsManager: |
||
6 | def __init__(self): |
||
7 | self._results_l = [] |
||
8 | |||
9 | def add(self, result, params) -> None: |
||
10 | score_d = {"score": result.score} |
||
11 | results_dict = {**score_d, **result.metrics} |
||
12 | |||
13 | self._results_l.append({**results_dict, **params}) |
||
14 | |||
15 | @property |
||
16 | def dataframe(self) -> pd.DataFrame: |
||
17 | return pd.DataFrame(self._results_l) |
||
18 | |||
19 | def best(self): |
||
20 | return max(self._results, key=lambda r: r.score, default=None) |
||
21 |