plotly / plotly/plotly.py

Allow arbitrary `Mapping` types when setting properties, rather than only `dict`

Offen
#4,212 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

feature P3
Vorherrschende Sprache
Python
Sterne
18.8k
Forks
2.8k
Ø Merge
16 Std. 26 Min.
Gemergte PRs (30 T.)
21

Beschreibung

Currently, it seems that only dict is allowed when setting properties. It would be better if an arbitrary Mapping type were allowed, since that grants the user the flexibility to control properties with alternative data structures such as a ChainMap.

As far as I can tell, this could be done just by changing the validate_coerce() logic to check isinstance(v, Mapping) instead of isinstance(v, dict), e.g. on this line.

Example

This raises a ValueError:

from collections import ChainMap

import plotly.graph_objects as go


layout = ChainMap(
    dict(width=1000),
    dict(width=500, height=500),
)
go.Figure(layout=layout)

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne in packages/python/plotly/_plotly_utils/basevalidators.py bei der in der Issue referenzierten validate_coerce()-Logik. Prüfe, wie das Beispiel Figure(layout=ChainMap(...)) validiert wird, und verifiziere anschließend, dass beliebige Mapping-Eingaben akzeptiert werden, ohne das bestehende dict-Verhalten zu ändern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
data-visualization
Issue-Typ
Feature
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
52/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.