Allow arbitrary `Mapping` types when setting properties, rather than only `dict`
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 18.8k
- Forks
- 2.8k
- Merge medio
- 16 h 26 min
- PR fusionados (30 d)
- 21
Descripción
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)
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza en packages/python/plotly/_plotly_utils/basevalidators.py, en la lógica de validate_coerce() mencionada en la issue. Comprueba cómo se valida el ejemplo Figure(layout=ChainMap(...)) y, después, verifica que se acepten entradas Mapping arbitrarias sin cambiar el comportamiento existente de dict.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- data-visualization
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 52/100