[BUG]: Duplicate `FigureWidget` import code in `graph_objects` and `graph_objs`

Ouverte Adaptée aux débutants
#5,849 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

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

@DawnofGenX y travaille déjà.

Depuis le 27/10/2026.

  • #5850 par @DawnofGenX — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
76/100
Type d'issue
Refactorisation
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
backend

Piste de recherche

Commencez dans codegen/__init__.py, à optional_figure_widget_import, puis lisez comment write_init_py et build_from_imports_py génèrent les deux fichiers d’initialisation des packages. Comparez les blocs FigureWidget dans plotly/graph_objs/__init__.py et plotly/graph_objects/__init__.py ; le travail est terminé lorsque le code généré conserve l’importation facultative existante de ipywidgets et le mécanisme de repli lorsque la dépendance est absente, tout en n’émettant le bloc qu’une seule fois. Vérifiez le test du mécanisme de repli référencé dans l’issue #5238.

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

Description

bug P3 size: 1
Description

The FigureWidget import code is duplicated in graph_objects and graph_objs.

Steps to reproduce
  • Open codegen/__init__.py and find optional_figure_widget_import.
  • Note that the codegen passes the string to write_init_py for graph_objs and to build_from_imports_py for graph_objects.
  • Open plotly/graph_objs/__init__.py and plotly/graph_objects/__init__.py.
  • Note the identical FigureWidget blocks at the end of each file.
Notes
  • The codegen writes the same optional FigureWidget import block into two generated files: plotly/graph_objs/__init__.py and plotly/graph_objects/__init__.py
  • graph_objects already re-exports every other class from graph_objs, including Figure. FigureWidget can follow the same path, because graph_objs handles the optional ipywidgets import and the missing_* fallback.
  • Any fix should not change behavior. This is just about removing duplicate code.
  • Related:
    • #3779 (closed, edited the generated file by hand)
    • #5238 (test for the missing FigureWidget fallback)
Langage dominant
Python
Étoiles
18.9k
Forks
2.9k
Merge moyen
1 j 22 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.