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

Aberta Para iniciantes
#5,849 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 2 dias

@DawnofGenX já está trabalhando nisso.

Desde 27/10/2026.

  • #5850 de @DawnofGenX — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
76/100
Tipo de issue
Refatoração
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
backend

Direção de pesquisa

Comece em codegen/__init__.py, em optional_figure_widget_import, e depois leia como write_init_py e build_from_imports_py geram os dois inicializadores de pacote. Compare os blocos FigureWidget em plotly/graph_objs/__init__.py e plotly/graph_objects/__init__.py; o trabalho estará concluído quando o código gerado mantiver a importação opcional existente de ipywidgets e o fallback para dependência ausente, emitindo o bloco apenas uma vez. Confira o teste de fallback referenciado na issue #5238.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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)
Linguagem predominante
Python
Estrelas
18.9k
Forks
2.9k
Merge médio
1d 22h
PRs com merge (30d)
12

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de plotly/plotly.py

Todas as issues de plotly/plotly.py

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.