Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

[BUG]: Integer and string properties reject NumPy scalars

Ouverte Adaptée aux débutants
#5,827 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

@RaphaelFakhri y travaille déjà.

Depuis le 19/10/2026.

  • #5828 par @RaphaelFakhri — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
70/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
numpy, pandas, python

Piste de recherche

Commencez par lire IntegerValidator et StringValidator, que l’issue indique comme rejetant les scalaires NumPy, et comparez leurs vérifications à celles de NumberValidator. Reproduisez les exemples pour name, text, nticks et nbinsx, puis recherchez les tests de validateurs couvrant les entiers et les nombres Python. Le travail est terminé lorsque les valeurs NumPy décrites dans l’issue sont acceptées dans ces propriétés et que le comportement de validation existant reste couvert.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug P3 size: 1
Description

Graph object properties validated as integers (such as layout.xaxis.nticks, histogram.nbinsx and layout.updatemenus[].active) reject NumPy integer scalars, and properties validated as non-strict strings (such as name and text) reject NumPy integer and float32 scalars. Python int and float values of the same number are accepted, and number properties such as marker.size already accept NumPy scalars.

This breaks a common pattern: building one trace per value of a DataFrame column with Series.unique(), which returns NumPy scalars.

Expected: NumPy integers are accepted wherever a Python int is, and NumPy numbers are converted to strings the same way Python numbers are.

Steps to reproduce
import numpy as np
import pandas as pd
import plotly.graph_objects as go

df = pd.DataFrame({"year": [2020, 2021], "v": [1, 2]})

for label, call in [
    ("name", lambda: go.Scatter(name=df.year.unique()[0])),
    ("text", lambda: go.Scatter(text=np.float32(1.5))),
    ("nticks", lambda: go.Layout(xaxis_nticks=np.int64(5))),
    ("nbinsx", lambda: go.Histogram(nbinsx=np.int32(10))),
]:
    try:
        call()
        print(label, "ok")
    except ValueError as error:
        print(label, str(error).splitlines()[1].strip())

Actual:

name Invalid value of type 'numpy.int64' received for the 'name' property of scatter
text Invalid value of type 'numpy.float32' received for the 'text' property of scatter
nticks Invalid value of type 'numpy.int64' received for the 'nticks' property of layout.xaxis
nbinsx Invalid value of type 'numpy.int32' received for the 'nbinsx' property of histogram

Expected:

name ok
text ok
nticks ok
nbinsx ok
Notes

IntegerValidator checks isinstance(v, int) and StringValidator checks isinstance(v, (int, float)). NumPy integer types are not subclasses of int, so they fail both checks, while NumberValidator checks numbers.Number and accepts them. The error message for string properties says "A number that will be converted to a string", which a NumPy number is.

Reproduced with plotly 7.1.0 and current main (38374acd), NumPy 2.x, Python 3.12.

Langage dominant
Python
Étoiles
18.9k
Forks
2.9k
Merge moyen
2 j 7 h
PR mergées (30 j)
12

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de plotly/plotly.py

Toutes les issues de plotly/plotly.py

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.