change context manager for temporary auto-reverted `figure.layout`
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 18.8k
- Forks
- 2.8k
- Ø Merge
- 16 Std. 26 Min.
- Gemergte PRs (30 T.)
- 21
Beschreibung
Instead of
fig.layout.showlegend = False
fig.write_image('plot.pdf')
fig.layout.showlegend = True
it would be nice to write
from plotly.express import plotly_patch # or similar
with plotly_patch(fig.layout, showlegend=False):
fig.write_image('plot.pdf')
I tried
from unittest.mock import patch
with patch.dict(fig.layout, showlegend=False):
fig.write_image('plot.pdf')
which unfortunately doesn't correctly restore the previous value but tries to delete the patched keys which is undesired behavior and raises AttributeError to boot:
1906 """Unpatch the dict."""
1907 if self._original is not None:
-> 1908 self._unpatch_dict()
...
1934 keys = list(in_dict)
1935 for key in keys:
-> 1936 del in_dict[key]
AttributeError: __delitem__
Related
Found this forum post where such a context manager was welcomed.
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
In der Issue wird keine Quelldatei und kein Test genannt. Beginne damit, das Verhalten beim Ändern und Wiederherstellen des Figure-Layouts zu finden, und untersuche anschließend, wie ein Context Manager vorhandene Werte bewahren und sie nach fig.write_image('plot.pdf'); wiederherstellen könnte; done sollte die Abdeckung für temporäre showlegend-Änderungen umfassen, ohne Layout-Schlüssel zu löschen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- data-visualization
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100