plotly / plotly/dash

Dash 2.0 DataTable Previous Data Loses Column Order

Aperta
#1,809 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug dash-data-table P3
Lingua principale
Python
Stelle
24.4k
Fork
2.3k
Merge medio
2g 7h
PR unite (30g)
13

Descrizione

In dash v1.19.0 with dash-table v4.11.2 the data_previous property of a DataTable retained the order of the columns
In dash v2.0.0 this property now returns the columns ordered alphabetically; not based on previous ordering

Minimal reproducible example:

from dash import Dash, Input, Output, State
from dash.exceptions import PreventUpdate
from dash.html import Div, Button
from dash.dash_table import DataTable
from pandas import DataFrame

df = DataFrame(dict(Z=[1, 2, 3], A=[7, 8, 9], L=[4, 5, 6]))
app = Dash(__name__)
table = DataTable(id='table', columns=[dict(name=i, id=i, deletable=True) for i in df.columns],
                  data=df.to_dict('records'))
undo_button = Button(id='undo-button', children='Undo')
app.layout = Div([Div(table), Div(undo_button)])


@app.callback([Output(table.id, 'columns'), Output(table.id, 'data')],
              Input(undo_button.id, 'n_clicks'),
              State(table.id, 'data_previous'))
def undo(n_clicks, previous_data):
    if n_clicks is None:
        raise PreventUpdate
    df = DataFrame(previous_data)
    return [dict(name=i, id=i, deletable=True) for i in df.columns], df.to_dict('records')

if __name__ == '__main__':
    app.run_server()

If I delete any of these columns, and then click the undo button, I expect the deleted column to be restored, and the order of the columns to remain Z, A, L

Initial table:
image

Deleted column:
image

Following undo:
image

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Eseguire l’esempio minimo riproducibile con le versioni indicate di Dash e dash-table, concentrandosi sulla proprietà data_previous di DataTable dopo l’eliminazione di una colonna. Confrontare l’ordine dei record restituiti tra le versioni e verificare che il ripristino della colonna eliminata mantenga l’ordine originale Z, A, L.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
data-visualization, frontend
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.