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

Aperta Adatta ai principianti
#5,849 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

@DawnofGenX ci sta già lavorando.

Dal 27/10/2026.

  • #5850 di @DawnofGenX — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
76/100
Tipo di issue
Refactoring
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Inizia da codegen/__init__.py, in optional_figure_widget_import, poi leggi come write_init_py e build_from_imports_py generano i due inizializzatori dei pacchetti. Confronta i blocchi FigureWidget in plotly/graph_objs/__init__.py e plotly/graph_objects/__init__.py; il lavoro è completo quando il codice generato mantiene l’importazione facoltativa esistente di ipywidgets e il fallback quando manca la dipendenza, emettendo il blocco una sola volta. Controlla il test del fallback citato nell’issue #5238.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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)
Lingua principale
Python
Stelle
18.9k
Fork
2.9k
Merge medio
1g 22h
PR unite (30g)
12

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di plotly/plotly.py

Tutte le issue di plotly/plotly.py

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.