gradient_free_optimizers._results_manager   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 15
dl 0
loc 21
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A ResultsManager.__init__() 0 2 1
A ResultsManager.best() 0 2 2
A ResultsManager.dataframe() 0 3 1
A ResultsManager.add() 0 5 1
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