Skip to content

fix(skore/Summary): Let pandas calculates the representation in a simple context (script/IPython) #2070

@thomass-dev

Description

@thomass-dev

This PR changes the representation of the Summary object in IPython:

In [3]: project.summarize()
Out[3]: <IPython.core.display.HTML object>
VBox(children=(VBox(children=(HBox(children=(Dropdown(description='Report Type:', layout=Layout(flex='1'), opt…
FigureWidget({
    'data': [{'dimensions': [{'label': 'Learner',
                              'ticktext': array(['LinearRegression'], dtype=object),
                              'tickvals': array([0]),
                              'values': array([0, 0], dtype=int8)},
                             {'label': 'RMSE', 'values': array([66.40851226, 66.40851226])}],
              'labelangle': -30,
              'line': {'color': array([66.40851226, 66.40851226]),
                       'colorbar': {'title': {'text': 'RMSE'}},
                       'colorscale': [[0.0, '#fde725'], [0.1111111111111111,
                                      '#b5de2b'], [0.2222222222222222, '#6ece58'],
                                      [0.3333333333333333, '#35b779'],
                                      [0.4444444444444444, '#1f9e89'],
                                      [0.5555555555555556, '#26828e'],
                                      [0.6666666666666666, '#31688e'],
                                      [0.7777777777777778, '#3e4989'],
                                      [0.8888888888888888, '#482878'], [1.0,
                                      '#440154']],
                       'showscale': True},
              'type': 'parcoords',
              'uid': '7a1497a3-1a3d-4fd0-b3fb-ab09b9fefaba'}],
    'layout': {'font': {'size': 18}, 'height': 500, 'margin': {'b': 30, 'l': 250, 'r': 0, 't': 120}, 'template': '...'}
})

                                                                          key                              date           learner     ml_task       report_type  ...   rmse_mean  log_loss_mean roc_auc_mean fit_time_mean  predict_time_mean
  id                                                                                                                                                             ...                                                                         
0 skore:report:estimator:1                 estimator-report: LinearRegression  2025-10-14T10:23:53.132733+00:00  LinearRegression  regression         estimator  ...         NaN           None         None           NaN                NaN
1 skore:report:cross-validation:2   cross-validation-report: LinearRegression  2025-10-14T10:24:57.862750+00:00  LinearRegression  regression  cross-validation  ...  108.639532           None         None      0.003301           0.000277
2 skore:report:estimator:28                estimator-report: LinearRegression  2025-10-17T08:41:33.197927+00:00  LinearRegression  regression         estimator  ...         NaN           None         None           NaN                NaN
3 skore:report:cross-validation:29  cross-validation-report: LinearRegression  2025-10-17T08:42:19.266918+00:00  LinearRegression  regression  cross-validation  ...  108.639532           None         None      0.000754           0.000282

[4 rows x 16 columns]

Could you find a way to disable the representation of the widget in IPython and let Pandas make its representation?

Originally posted by @thomass-dev in #2059 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions