Let the unspecified arguments of dict output of a callback function default to `dash.no_update` (or other user defined default)
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 24.4k
- Forks
- 2.3k
- Ø Merge
- 2 T. 7 Std.
- Gemergte PRs (30 T.)
- 13
Beschreibung
If you use named arguments for the output a callback function, as in
@app.callback(
output=dict(x=Output(...), y=Output(...)),
inputs=dict(a=Input(...), b=Input(...)),
state=dict(c=State(...))
)
def callback(b, c, a):
return dict(x=a + b, y=b + c)
you have to specify all the arguments in the returning dict. But since named argument are useful especially when you have several output arguments, and if, like I experienced, you need to update only one or few arguments in the various return cases, it would be much more comfortable to return a dict specifying only those few arguments, instead of returning a long dict mostly made of dash.no_update.
I think the code would be shorter and clearer if the returning dict could default the unspecified named arguments to dash.no_update or some user defined value, like in defaultdict.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit nachzuverfolgen, wie dict-Ausgaben von callback functions validiert und normalisiert werden. Vergleiche das bestehende Verhalten von dash.no_update mit weggelassenen Schlüsseln und dem vorgeschlagenen benutzerdefinierten Default und füge anschließend gezielte Tests für partielle Rückgaben und die Behandlung des Defaults hinzu. Die Aufgabe ist erledigt, wenn nicht spezifizierte Ausgaben konsistent den ausgewählten Default erhalten, ohne explizit zurückgegebene Werte zu ändern.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- backend-api-design
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100